PXE 实现系统批量自动安装

PXE 实现系统批量自动安装

  • PXE
    就是预启动执行环境,是一种引导启动的方式。这种协议一般由两部分构成,一部分是服务器端,一个是客户端。简单来说,我们通过这种方式可以自己创建一个“安装源”,在安装系统的时候只要能找到这个“源”便可以实现系统的安装。在实现无人值守的安装前,我们必须要搭建一些服务,来实现“安装源”的建立,例如 ftp、http、tftp、dhcp 等。当一台主机启动时,标准输入输出会将 PXE 客户端调入我们的内存中进行相关的操作,并提示相关的选项,在这里我们可以进行选择。PXE 的客户端通过网络下载(download)启动文件到本地运行。具体过程是,PXE 客户端通过网卡向局域网内发送 ip 请求,然后 DHCP 服务器会提供给给它一个 ip 地址和系统安装所需要的文件,接下使用接收到的文件进行系统安装。而安装的过程又需要其他服务器提供的资源,例如:yum 源,内核文件等,当主机拿到这些资源,便可以顺利的安装了。最终结果是:任意一台主机在选着网络启动时会获取 DHCP 服务器分发的 ip,通过通过获取到的 ip 地址与局域网内的 TFTP 服务器通信并获取启动文件,与 FTP 或者 HTTP 通信并获取 yum 源文件及内核文件等。之后开始自动安装,而这个过程不需要人在做任何操作。
  • PXE安装优点
    这种安装系统的方式可以不受光驱,光盘以及一些外部设备的限制,还可以做到无人值守,大大减轻了运维人员的工作负荷,像在一些主机数量庞大的机房进行批量安装,PXE 将是你不二的选择。

具体操作如下:

1. 安装服务

由于我们需要 HTTP、TFTP、DHCP 服务来提供相应的服务,所以我们必须要在系统中安装,相应的服务。这里需要注意,如果你的系统时最小化安装,那么建议你先安装一些包组,GCC等。如果安装过程中出现包依赖问题,依次安装相应的包即可。

执行如下

 [root@client ~]# yum install dhcp tftp-server.x86_64  httpd syslinux -y  #安装相应的服务包
 httpd      # 共享安装资源
 dhcp       # 分配ip以及让客户主机获取pxelinux.0文件
 pxelinux.0 # 预安装环境头文件,用来指定读取后续文件的程序
 tftp-server    # 提供tftp协议,令客户主机可以读取到预安装环境
 syslinux   # 提供pxelinux.0文件
 [root@client ~]# yum install xinetd -y       # 安装超级守护进程 xinetd
 [root@client ~]# systemctl start dhcpd       # 启动 dhcpd 服务
 [root@client ~]# systemctl enable dhcpd      # 设置 dhcpd 开机启动
 [root@client ~]# systemctl start httpd       # 启动 httpd 服务
 [root@client ~]# systemctl enable httpd
 [root@client ~]# chkconfig --list       # 如果 tftp: off,请修改配置文件
 [root@client ~]# vim /etc/xinetd.d/tftp
 service tftp
 {
 ...
     disable     = yes         # 修改这一项为"disable     = no"
 ...
 }
 [root@client ~]# systemctl restart xinetd     # 修改之后,一定要重启xinetd服务

执行如下:
修改配置文件
这里写图片描述
查看
这里写图片描述

2. 配置DHCP服务

DHCP服务是保证我们能够自动化批量安装的前提,主要是配置子网范围,用于ip地址分配。

 [root@client ~]# rpm -ql dhcp         # 查询dhcp相关的文件
 ...前面省略
 /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
 /usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example
 ...后面省略
 [root@client ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf   
                   # 复制模板配置文件
 [root@client ~]# vim /etc/dhcp/dhcpd.conf    # 编辑配置文件
 ...前面省略...
 subnet 172.25.151.0 netmask 255.255.255.0{         
     # 这里写的ip地址为子网的 地址,故为192.168.14.0
   range 172.25.151.30 172.25.151.40;     
     # 子网的范围,之后主机请求获取的ip地址就是这其中的一个
   next-server 172.25.151.20     
     # 指明tftp服务器的地址
   filename "pxelinux.0";
     # 指明PXE文件位置,这个在申请ip的时候会发送给安装主机
   option routers 172.25.151.20;
 }
 ...后面省略...
 [root@client ~]# systemctl restart dhcpd.service     # 重启服务

 注意:如果你设置的子网有问题,那么你将不能重启dhcp服务,请检查你配置的子网是否正确。
 dhcp服务器的地址必须固定,不能是自动获取的ip。

执行入下:
编辑配置文件
这里写图片描述

3.设定共享文件

3.1 制作安装源

 [root@client ~]# mkdir /var/www/html/rhel7.0
                # 创建挂载点
 [root@client ~]# mkdir /iso
                # 创建镜像源放置点
 [root@client ~]# mv /root/Desktop/rhel-server-7.0-x86_64-dvd.iso /iso/
                # 将镜像源放入
 [root@client ~]# mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0/
                # 进行挂载镜像
 [root@client ~]# vim /etc/rc.d/rc.local
                # 编辑配置文件进行开机自动挂载
 内容如下:
 mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0
 [root@client ~]# chmod +x /etc/rc.d/rc.local
                # 为该文件添加执行权限

执行如下:
这里写图片描述

3.2 准备内核文件菜单文件

 [root@client ~]# cp /var/www/html/rhel7.0/isolinux/* /var/lib/tftpboot/
                # 复制内核,虚拟根文件 
 [root@client ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
                # pxelinux文件来自syslinux包,直接复制即可 
 [root@client ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
 [root@client ~]# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
                # 复制并改名

                # 编辑文件
 systemctl restart xinetd

3.3 设定自动化部署

 [root@client ~]# yum install system-config-kickstart -y
 [root@client ~]# system-config-kickstart  
  执行,进行配置,将文件保存为 /var/www/html/rhel7.0.cfg 
 [root@client ~]# vim /var/lib/tftpboot/pxelinux.cfg/default61 行左右添加  
 label autoinstall  # 选项标签
   menu label ^Autoinstall RHEL7.0  # 标题
   kernel vmlinuz           # 启动的内核文件
   append initrd=initrd.img             # 初始化镜像 
   repo=http://172.25.254.100/rhel7.0   # 安装资源
   ks=http://172.25.254.100/rhel7.0.cfg # 自动安装脚本

执行如下:
system-config-kickstart 具体配置见Linux菜鸟成长日记 (Linux通过脚本文件自动创建虚拟机)
这里写图片描述
保存为
这里写图片描述
编辑配置文件
这里写图片描述

4. 调试并安装

以建立虚拟机为例
点击建立
这里写图片描述
pxe 方式进行建立,然后进行配置
这里写图片描述
可看到从自动获取 IP
这里写图片描述
进入刚才设定的菜单,进行自动安装
这里写图片描述

猜你喜欢

转载自blog.csdn.net/buster_zr/article/details/80847615