想要实现网络自动化装机需要配置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 #服务名dhcpd
2°修改配置文件
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.example
cat /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.conf
6 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.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux.0
pxelinux.0:这个文件要求读取菜单文件 /var/lib/tftpboot/pxelinux.cfg/default
mkdir /var/lib/tftpboot/pxelinux.cfg #pxelinux.cfg这个文件夹需要自己创建
3°部署菜单文件:(复制光盘中的菜单文件)
光盘的isolinux目录下有许多的引导文件。
我们需要的菜单文件就是isolinux/isolinux.cfg
cp /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.c32
cp /run/media/space/CentOS\ 7\ x86_64/isolinux/splash.png /var/lib/tftpboot/splash.png
5°部署启动内核与驱动程序:
启动内核:光盘的isolinux目录下的vmlinuz
驱动程序:光盘的isolinux目录下的initrd.img
把启动内核,驱动程序都放在/var/lib/tftpboot/中
cp /run/media/space/CentOS\ 7\ x86_64/isolinux/vmlinuz /var/lib/tftpboot/vmlinuz
cp /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/default
1 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 httpd
2°将光盘挂载到/var/www/html/centos/下,为了供客户机安装软件包
mount /dev/sr0 /var/www/html/centos
六、实现无人值守安装,生成应答文件(ks.cfg)
应答文件ks.cfg可以由软件生成。
1°安装生成ks.cfg文件的软件包:
yum -y install system-config-kickstart
2°把光盘的yum仓库名修改为[development]:(不修改无法启动软件)
vim /etc/yum.repos.d/my_yum.repo
3°启动system-config-kickstart
LANG=en system-config-kickstart
启动之后是图形界面,选择对应的选项后生成应答文件ks.cfg。
4°利用web服务共享应答文件。
cp /root/ks.cfg /var/www/html
5°修改菜单文件:(让其寻找应答文件)
vim /var/lib/tftpboot/pxelinux.cfg/default
61 label linux
62 menu label ^Install CentOS 7
63 menu default
64 kernel vmlinuz
65 append initrd=initrd.img ks=http://192.168.80.133/ks.cfg #在驱动程序后添加应答文件 ks.cfg
重启所有服务。!!
使用虚拟机测试的时候选择PXE安装。
写总结的第九天!!!