架构师的成长之路初片~PXE自动批量装机

什么是自动批量装机:自动批量装机是:DHCP、TFTP、FTP、PXE三大服务以及一个无人值守机的互相配合,让从未装过系统的机器,自动获取ip到自动装系统到完成的一个新系统安装的过程。(新机开即即可自动安装,无需人工手动安装)

如图下所示:

环境准备:两台centos7的服务器,关闭selinux,firewalld 

1)安装DHCP服务

包名:dhcpd-server

主配置文件:/etc/dhcp/dhcpd.conf

2)修改主配置文件信息

在文件内读入文件:/usr/share/doc/dhcp*/dhcpd.conf.example

r   /usr/share/doc/dhcp*/dhcpd.conf.example

subnet 192.168.4.0 netmask 255.255.255.0 {   //网段、掩码
  range 192.168.4.100 192.168.4.200;      //地址池
  option domain-name-servers 192.168.4.7;  //分配的DNS
  option routers 192.168.4.254;    //分配的网关地址
  default-lease-time 600;            //默认开机连接的时间
  max-lease-time 7200;                //最大连接时间
 next-server 192.168.4.7; //下一跳的服务地址
filename "pxelinux.0"; //指明网卡引导文件名称

3)保存后退出

################################################################################

pxelinux.0 文件解释

Pxelinux.0(网卡引导文件==[网络装机说明书])

二进制文件,安装一个软件可以获得该文件(syslinux)

################################################################################

4)重启dhcp服务

systemctl restart dhcpd

2:TFTP服务

tftp简单的文件传输协议:默认端口:69

默认共享的主目录:/var/lib/tftpboot

任务:负责给客户端提供引导文件

1) 装包

[root@pc7 dhcp]# yum -y install tftp-server

Yum provides */pxelinux.0           //查询那个包产生该文件

部署pxelinux.0文件

Yum provides */pxelinux.0           //查询那个包产生该文件

Yum -y install syslinux            //安装syslinux包

Rpm -ql syslinux | grep pxelinux.0    //查询软件包清单

Cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/  //复制

Ls /var/lib/tftpbot/          //查看确定

1)在/var/lib/tftpboot/   目录下   创建一个叫pxelinux.0 

2)将磁盘内的菜单文件 isolinux.cfg        复制并且更名为  /tftpboot/pxelinux.cfg/default

2.1)修改/tftpboot/pxelinux.cfg/default   文件内的内容

10、11:图片文件,开机菜单选择名称  删除65行后面的所有内容。

 

 留下

 62行:界面显示的内容

 

3)

将光盘内的文(4个)件复制到tftpboot下

initrd.img(驱动程序) vesamenu.c32(图形模块) splash.png(背景图片) vmlinuz(启动内核)

4)查看tftpboot下的文件总数(6个)

initrding       pxelinux.cfg(目录内有个菜单default文件)        vesamenu.c32      pxelinux.0    splash.png     vmlinuz

安装思路:

DHCP服务器ip-->next-server-->filename-->pxelinux.0-->ftfp服务:pxelinux.0-->(pxelinux.0)/var/lib/tftpboot/pxelinux.cfg/default(默认菜单(系统)文件)

###########################################################

在读取pxelinux.0文件中,实际上读取的是/var/lib/tftpboot/pxelinux.cfg文件的内容。而pxelinux.cfg就是在开机自启时选择的一个菜单栏。(此文件实际在光盘内的/isolinux/isolinux.cfg内)所以我们得把光盘内的文件复制到引导启动的文件中。/var/lib/tftpboot/pxelinux.cfg中

初步测试(KVM虚拟机)

初步测试(VMware)

网络装机内存大小建议2个G,在编辑处选择

因为vmware自带dhcp功能,所有得关掉

见到下图,则表示初步测试成功。

部署FTP服务

1)装包

2)在/var/ftp/centos    创建目录

3)把光驱挂载到/var/ftp/centos    目录下

4)重启服务

5)测试:curl   ftp://192.168.4.7/centos/

实现无人值守安装

实现无人值守安装,生成答应文件。

*安装system-config-kickstart图形的工具

1)装包:Yum -y install system-config-kickstart

2)运行:system-config-kickstart

3)在运行图形工具时弹出的配置程序中,我们直接看(软件包选择),如果不能选择,则修改一下本地服务器的yum文件内的标签修改为:

修改完后,重新启动程序。

]# system-config-kickstart

如下图安装

 

 

 

 

 

 

 

 

 

其他的默认不动,配置完成后,点击左上角的保存。

保存到/root。

在然后关掉,在虚拟中查看ls即可

3)利用FTP服务共享应答文件

ks.cfg文件复制到FTP下

[root@pc7 ~]# cp ks.cfg /var/ftp/

[root@pc7 ~]# ls /var/ftp/

centos  ks.cfg  other  pub

curl测试:[root@pc7 ~]# curl ftp://192.168.4.7/ks.cfg

1)修改菜单文件(将ftp文件的路径写到驱动文件中)

Vim /var/lib/tftpboot/pxelinux.cfg/default

 重启所有的服务:dhcpd  vsftpd   tftp

总结:

自动装机一共分为三个服务1个插件与一个引导文件pxelinux.0

dhcp-->clinent-->tftp-->clinent-->ftp-->clinent

重要操作步骤有:

配置dhcpd.conf文件的内容

配置tftpboot/目录下的文件以及pxelinux.0目录下的菜单文件default

#注意文件的个数以及文件内容

/dhcpd.conf 文件内容

subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 192.168.4.7;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.7;
filename "pxelinux.0";
}

/default内容

行尾

label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg

注意.repo文件的标签,否则运行system-config-kickstart会出现问题

[development]
name=dvd
baseurl=file:///mnt/disk
gpgcheck=0
enable=1

原文地址:https://www.cnblogs.com/ahaocloud/p/14348740.html