PXE装机
网络装机的优势:
规模化:能够装多台机器
自动化:装系统、配置服务
远程实现:不需要光盘、u盘
服务端需要的组件:
DHCP服务:分配ip、、定位引导程序
TFTP服务:提供引导程序下载
HTTP服务:提供yum安装源
客户端条件:
网卡芯片支持PXE协议
主板支持从网卡启动
一:部署dhcp服务
准备:
配ip地址
关闭selinux和防火墙
配置yum源
1、安装DHCP软件包
[root@lsh ~]# yum -y install dhcp
2、修改配置文件
(这里的配置文件是在提示的模板文件中取出来的)
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#根据自己当前机器的ip进行设置
subnet 192.168.146.0 netmask 255.255.255.0 {
range 192.168.146.100 192.168.146.200;
option domain-name-servers 192.168.146.140;
option routers 192.168.146.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.146.140; //指定下一个服务器地址
filename "pxelinux.0"; //指定网卡引导文件名称
}
3、启动服务器
[root@lsh ~]# systemctl restart dhcpd
二:部署TFTP服务
1、安装TFTP软件包
[root@lsh ~]# yum -y install tftp-server
2、启动服务
[root@lsh ~]# systemctl start tftp
3、部署pxelinux.0文件
[root@lsh ~]# yum provides pxelinux.0 //查看该文件时那个包提供的
[root@lsh ~]# yum -y install syslinux
[root@lsh ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
4、部署菜单文件
[root@lsh ~]# ls /var/lib/tftpboot/
[root@lsh ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@lsh ~]# ls /var/lib/tftpboot/
[root@lsh ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@lsh ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
5、部署图形模块(vesamenu.c32)与背景图片(splash.png)
[root@lsh ~]# cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png /var/lib/tftpboot/
[root@lsh ~]# ls /var/lib/tftpboot/
pxelinux.0 pxelinux.cfg splash.png vesamenu.c32
6、部署启动内核(vmlinuz)和驱动程序(initrd.img)
[root@lsh ~]# cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot/
[root@lsh ~]# ls /var/lib/tftpboot/
initrd.img pxelinux.cfg vesamenu.c32
pxelinux.0 splash.png vmlinuz
7、修改菜单文件
[root@lsh ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
末行模式:set nu
1 default vesamenu.c32 #默认加载图形模块
2 timeout 600 #默认读秒时间 1/10
10 menu background splash.png #背景图片
11 menu title NSD1905 PXE Server ! #标题显示
61 label linux
62 menu label Install CentOS 7.5 #菜单显示的内容
menu default #读秒结束后默认选择
63 kernel vmlinuz #加载启动内核
64 append initrd=initrd.img #加载驱动程序
重启服务
[root@lsh ~]# systemctl restart tftp
[root@lsh ~]# systemctl status tftp
[root@lsh ~]# systemctl restart dhcpd
[root@lsh ~]# systemctl status dhcpd
三、构建Web服务提供软件包
[root@lsh ~]# yum -y install httpd
[root@lsh ~]# mkdir /var/www/html/centos
[root@lsh ~]# mount /dev/cdrom /var/www/html/centos
mount: /dev/sr0 写保护,将以只读方式挂载
[root@lsh ~]# systemctl restart httpd
[root@lsh~]# firefox 192.168.146.140/centos
四、部署无人值守安装,生成应答文件
图形工具system-config-kickstart进行生成应答文件
[root@lsh~]# yum -y install system-config-kickstart
]# LANG=en system-config-kickstart #英文进行运行
点击 “软件包选择(Package Selection)” 查看是否可以进行选择
需要Yum仓库的支持:指向光盘的内容仓库,标识必须为[development]
[root@lsh ~]# vim /etc/yum.repos.d/local.repo
[development]
name=CentOS-$releasever - Base
baseurl=ftp://192.168.146.254/centos-1804
enabled=1
gpgcheck=0
[root@lsh ~]# LANG=en system-config-kickstart
点击 “软件包选择(Package Selection)” 查看是否可以进行选择
查看生成的应答文件:
[root@lsh ~]# ls /root/
[root@lsh ~]# vim /root/ks.cfg
共享应答文件:
[root@lsh ~]# cp /root/ks.cfg /var/www/html/
[root@lsh ~]# ls /var/www/html/
centos ks.cfg
修改菜单文件指定应答文件的位置:
[root@lsh ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
menu label Install CentOS 7.5
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.146.140/ks.cfg
总结:
1、dhcp:修改了ip地址,next-server,filename
2、tftp:pxelinux.0
3、pxelinux.0:菜单文件default
4、default:修改图形模块、背景图片、内核、驱动程序、ks.cfg
5、ks.cfg :可以选择分区、选择安装的软件包