想要实现网络自动化装机需要配置DHCP,TFTP,HTTP(或者FTP,NFS)这几个服务。
DHCP:主要为每个还没有操作系统的主机分配ip地址。
TFPT:主要为主机传输一些启动的引导文件。因为在这时主机还没有操作系统,因此不能使用HTTP,FTP,NFS来传输文件。
HTTP:主要是为主机提供软件包。这里使用NFS,FTP都可以。
为了节省资源,DHCP,TFTP,HTTP都部署在一台服务器上。
在一个网络中只能有一个DHCP服务器,否则ip则会随意变化。
一、部署DHCP服务器:
DHCP:动态主机配置协议,主要为主机分配ip地址,子网掩码,广播地址,默认网关,DNS服务器地址,PXE引导等一系列信息。
1°安装软件包yum -y install dhcp #服务名dhcpd2°修改配置文件vim /etc/dhcp/dhcpd.conf此时配置文件的内容如下:# DHCP Server Configuration file.# see /usr/share/doc/dhcp*/dhcpd.conf.example# see dhcpd.conf(5) man page配置文件的内容参考/usr/share/doc/dhcp*/dhcpd.conf.examplecat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example >> /etc/dhcp/dhcpd.conf #我电脑中的是dhcp-4.2.5将配置文件修改成如下内容:6 subnet 192.168.80.0 netmask 255.255.255.0 { # 网段和子网掩码7 range 192.168.80.150 192.168.80.220; #地址池,指明了动态分配ip的范围8 option domain-name-servers 192.168.4.7; #DNS服务器地址9 option routers 192.168.80.254; #网关地址10 default-lease-time 600; #允许客户机使用ip的时间11 max-lease-time 7200; #允许客户机使用ip的最大时间12 }重启服务:systemctl restart dhcpd #为了检验配置是否正确
二、PXE概述:
PEX网络:预启动的执行环境,在操作系统启动之前运行,可用于远程安装。
PEX-Client:集成在网卡的启动芯片中,当计算机进行引导时,从芯片中把PEX-Client调入内存中执行,从而获取PEX-server(装机服务器)配置,根据用户选择将远程引导程序下载到本地运行。
三、指定tftp、网卡引导文件
vim /etc/dhcp/dhcpd.conf6 subnet 192.168.80.0 netmask 255.255.255.0 {7 range 192.168.80.150 192.168.80.220; #地址池8 option domain-name-servers 192.168.4.7; #DNS服务器地址9 option routers 192.168.80.254; #网关地址10 default-lease-time 600; #允许客户机使用ip的时间11 max-lease-time 7200; #允许客户机使用ip的最大时间12 next-server 192.168.80.133; #tftp服务器所在主机地址,本机13 filename "pxelinux.0"; #网卡引导文件,二进制文件,可以通过安装的软件得到14 }
四、构建tftp服务器,提供众多引导文件:
1°安装tftp服务:yum -y install tftp-server #服务名是tftp,默认共享路径/var/lib/tftpboot/2°部署网卡引导文件pxelinux.0:yum provides */pxelinux.0 #根据文件找对应的软件匹配来源:文件名 :/usr/share/syslinux/pxelinux.0所以安装syslinux这个软件包yum -y install syslinux # 安装之后,需要的文件再/usr/share/syslinux/pxelinux.0cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux.0pxelinux.0:这个文件要求读取菜单文件 /var/lib/tftpboot/pxelinux.cfg/defaultmkdir /var/lib/tftpboot/pxelinux.cfg #pxelinux.cfg这个文件夹需要自己创建3°部署菜单文件:(复制光盘中的菜单文件)光盘的isolinux目录下有许多的引导文件。我们需要的菜单文件就是isolinux/isolinux.cfgcp /run/media/space/CentOS\ 7\ x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #拷贝菜单文件4°部署图形模块和背景图片:图形模块:光盘的isolinux目录下的vesamenu.c32背景图片:光盘的isolinux目录下的splash.png把图形模块和背景图片都放在/var/lib/tftpboot/中cp /run/media/space/CentOS\ 7\ x86_64/isolinux/vesamenu.c32 /var/lib/tftpboot/vesamenu.c32cp /run/media/space/CentOS\ 7\ x86_64/isolinux/splash.png /var/lib/tftpboot/splash.png5°部署启动内核与驱动程序:启动内核:光盘的isolinux目录下的vmlinuz驱动程序:光盘的isolinux目录下的initrd.img把启动内核,驱动程序都放在/var/lib/tftpboot/中cp /run/media/space/CentOS\ 7\ x86_64/isolinux/vmlinuz /var/lib/tftpboot/vmlinuzcp /run/media/space/CentOS\ 7\ x86_64/isolinux/initrd.img /var/lib/tftpboot/initrd.img此时/var/bin/tftpboot中有六个文件:驱动程序initrd.img、启动内核vmlinuz、背景图片splash.png、图形模块vesamenu.c32、菜单文件pxelinux.cfg/default、网卡引导文件pxelinux.0。6°修改菜单文件:vim /var/lib/tftpboot/pxelinux.cfg/default1 default vesamenu.c32 #默认加载图形模块2 timeout 600 #读秒时间60秒10 menu background splash.png #背景图片11 menu title CentOS 7 #标题,CentOS 7可以自定义61 label linux #菜单62 menu label ^Install CentOS 7 #选项名menu default #默认选择选项 ,需要手动添加63 kernel vmlinuz #内核64 append initrd=initrd.img #内核#65行之后的不再需要。
五、构建web服务器,共享软件包:(取消虚拟主机)
1°安装软件包yum -y install httpd2°将光盘挂载到/var/www/html/centos/下,为了供客户机安装软件包mount /dev/sr0 /var/www/html/centos
六、实现无人值守安装,生成应答文件(ks.cfg)
应答文件ks.cfg可以由软件生成。1°安装生成ks.cfg文件的软件包:yum -y install system-config-kickstart2°把光盘的yum仓库名修改为[development]:(不修改无法启动软件)vim /etc/yum.repos.d/my_yum.repo3°启动system-config-kickstartLANG=en system-config-kickstart启动之后是图形界面,选择对应的选项后生成应答文件ks.cfg。4°利用web服务共享应答文件。cp /root/ks.cfg /var/www/html5°修改菜单文件:(让其寻找应答文件)vim /var/lib/tftpboot/pxelinux.cfg/default61 label linux62 menu label ^Install CentOS 763 menu default64 kernel vmlinuz65 append initrd=initrd.img ks=http://192.168.80.133/ks.cfg #在驱动程序后添加应答文件 ks.cfg重启所有服务。!!
使用虚拟机测试的时候选择PXE安装。
写总结的第九天!!!