YUM和PXE自动装机

PXE(预启动执行环境)是由inter公司开发的技术,可以让计算机通过网络来启动操作系统(前提是网卡支持pxe技术),主要用于在无人值守安装系统中引导客户端主机安装linux操作系统,kickstart是一种无人值守的安装方式,工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数是则自动匹配,kickstart生成的文件,所有只要kickstart文件包含了安装过程中需要人工填写的所有参数,从理论上来讲完全不需要人工干预。

PXE的工作过程

1.pxe Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
2.DHCP服务器返回分配给客户端的ip*以及PXE文件的放置位置(该文件一般是放在TFTP服务器上);
3.PXE Client 向本网络中的TFTP服务器索取pxelinux.0文件;
4.PXE Client取得pxelinux.0文件后执行该文件;
5.根据pexlinux.0的执行结果,通过TFTP服务器加载内核和文件系统;
6.进入安装画面,此时可以通过选择HTTP/FTP/NFS方式之一进行安装;

在这里插入图片描述

Kickstart安装需求

1.网卡必须支持PXE引导;
2.客户端需要有与kickstart通信的IP地址,这个一般通过DHCP自动分配IP地址来实现;
3.提供引导所需的文件,内核文件,内核镜像文件等,此时一般通过tftp-server等实现。
4.kickstart文件,它主要实现自动化安装的过程,比如配置主机名,添加用户,安装系统后相关操作;
5.提供安装源,一般就是HTTP/HTTPS/NFS/FTP等方式;
综合上述需要的工具:dhcp+tftp+syslinux+kickstart+httpd

PXE服务器配置案例

环境介绍
服务器系统:Centos7.3
网卡地址:192.168.10.50
光盘镜像:CentOS-7-x86_64-DVD-1810.iso
安装工具:dhcp+ftp+syslinux+kickstart+httpd

配置步骤

1.挂载系统光盘到/mnt/,并搭建httpd共享yum源。

mount /dev/cdrom /mnt //挂载本地yum到mnt目录下面
mkdir /yum
cp -rf /mnt/* /yum/ //复制mnt下面的安装包到yum下面做httpd的共享仓库

2.使用yum安装需要的服务dhcp,tftpserver,syslinux, kickstart,httpd

yum -y install dhcp httpd tftp-server syslinux system-config-kickstart //使用yum安装需要的软件包

3.配置httpd服务并启动dhcpd

vim /etc/httpd/conf/httpd.conf //编辑httpd的主配置文件(在119~131行左右)

DocumentRoot "/yum"

#
# Relax access to content within /var/www.
#
<Directory "/yum">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

# Further relax access to the default document root:
<Directory "/yum">

修改完配置后保存退出,重启服务
systemctl restart httpd

4.配置dhcp服务器并启动

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf //复制模板文件到主配置文件或者进入文件在末行位置写:r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
vim /etc/dhcp/dhcpd.conf //编辑主配置文件

subnet 192.168.40.0 netmask 255.255.255.0 {
  range 192.168.40.10 192.168.40.100;
  option domain-name-servers 114.114.114.114;
  option domain-name "baidu.com";
  option routers 192.168.40.1;
  option broadcast-address 192.168.40.255;
  default-lease-time 600;
  max-lease-time 7200;
 next-server 192.168.40.10; //IP地址不加引号,设置tfpt地址
  filename "pxelinux.0"; //设置pxe引导文件名称
}

重启dhcpd服务

systemctl restart dhcpd ##启动dhcpd服务

5.编辑tfpt配置文件开启tftp并重启服务

vim /etc/xinetd.d/tftp //编辑tftp配置文件
{
server_args = -s /var/lib/tftpboot //可以更改默认的存放路径。
disable = yes //将yes改为no

启动tftp服务

systemctl restart tftp //启动tftp服务程序

6.准备内核,初始化镜像,pxe引导,启动菜单二五年间复制到tftp目录,tftp的默认根目录为/var/lib/tftpboot/

内核和初始化文件:vmlinuz和initrd.img,文件光盘目录的/yum/images/pxeboot目录下面;
2.PXE引导文件:pxelinux.0由syslinux软件提供,目录在/usr/share/syslinux/目录下面;
3.启动菜单文件:在光盘/yum/isolinux/isolinux.cfg,复制后更名default;

cp {initrd.img,vmlinuz} /var/lib/tftpboot/  //将初始化文件和内核文件放到tftp目录下面
cp /usr/share/syslinux/pxelinux.0 ./ //将pxe引导文件复制到gftp的当前目录下面
mkdir pxelinux.cfg //在tftp的根目录下面创建启动菜单目录
cp /yum/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default  //将启动菜单模板复制到tftp根目录的pxelinux.cfg目录下,改名为default
vim default //编辑当前目录下面的启动菜单文件
------------修改一下的内容-----------
原1行 default vesamenu.c32
改1行 default linux

原64行 append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
改64行  append initrd=initrd.img inst.stage2=http://192.168.10.40/ ks=http://192.168.10.40/ks.cfg quiet
注意:第一行的linux的名字要和61行linux名字一样,否则会出错。

7.安装kickstart工具生成自动应答文件或者编辑一个自动应答文件,将其保存到共享文件/yum/下面。

vim /yum/ks.cfg //编辑自动应答文件
-----------添加一下内容------------
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
keyboard 'us'  //设置键盘语言
rootpw --iscrypted $1$h1IxYj45$nq11vzBP03rGhraxbtgCL0 //设置管理员密码
url --url="http://192.168.10.40/"  //设置安装源的路径httpd
lang zh_CN  //设置安装语言为中文
firewall --disabled
auth  --useshadow  --passalgo=sha512
graphical
firstboot --disable  //设置防火墙为关闭
selinux --disabled  //设置selinx为关闭

network  --bootproto=dhcp --device=ens33  //设置网卡的ip获取类型和网卡的名称
reboot //设置安装成功之后自动重启
timezone Asia/Shanghai  //设置时区为亚洲上海
bootloader --location=mbr
clearpart --all
part / --fstype="xfs" --size=20000  //设置磁盘挂载位置和分配磁盘大小15G

%packages //到end结束是复制anaconda中的安装脚本
@desktop-debugging
@fonts
@gnome-desktop
@graphical-admin-tools
@graphics
@input-methods
@kde-desktop
@legacy-x
@remote-desktop-clients
@system-management
@x11
gnome-disk-utility
gnome-packagekit
setroubleshoot
vinagre
xterm

%end

8.重启 dhcpd httpd tftp 服务,然后关闭防火墙和selinux

systemctl restart dhcpd httpd tftp //重启dhcpd httpd tftp服务
systemctl stop firewalld //关闭防火墙
setenforce 0 //关闭selinxu

9.新建虚拟机将网络和服务器改为同一模式,开机验证是否成功!!!!

PXE常见故障

故障一:如果客户机开机可以获取到ip,但是提示pxe-e11:arp-timeout
解决办法:查看next-server的ip地址是否正确
故障二:如果使用system-config-kickstart工具选择软件包提示由于下载软件包失败
解决办法:将本地yum源的第一项 [***] 改为 [development]
故障三:如果在测试机快要加载完毕的时候出现Pane is dead
解决办法:看defalut文件第64行否则缺少内容。ks=http://IP地址。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值