目录
一.PXE基础知识
PXE使用条件:客户机与PXE服务器必须在同一交换机上,服务器可以分配ip地址给客户机,客户机内存必须大于2G
做pxe需要4大文件:
vmlinuxz内核映像,initrd.img,精简的linux系统的文件系统驱动, isolinux.cfg启动菜单的配置文件,pxelinux.0 小型的grub程序
二.PXE使用服务
dhcp:必须有dhcp服务分配ip,裸机无ip地址。网卡功能,自动获取ip地址,配置dhcp时告诉tftp服务器地址给裸机客户端。
TFTP:UDP协议,通过此协议将需要的文件下载到网卡,网卡自带功能。网卡不支持ftp。
FTP:装软件包时数据过大,tftp不能保证传输。
SYSLINUX-EXTLINUX.X86_64:小型的grub引导程序。
SYSTEM-CONFIG-KICKSTART:KICKSTART无人值守安装
三.高效批量网络装机实操
①安装tftp-server,vsftp,syslinux,dhcp软件
yum install tftp-server vsftpd syslinux dhcp -y
②配置dhcp服务
cat /etc/dhcp/dhcpd.conf #查看dhcp服务真实配置文件位置
dhcpd.conf显示配置文件在/usr/share/doc/dhcp*/dhcpd.conf.example
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#将真实配置文件拷贝到/etc/dhcp/目录下并命名dhcpd.conf,询问是否覆盖输入yes覆盖
vim /etc/dhcp/dhcpd.conf #编辑拷贝过来的dhcp配置文件
③修改tftp配置文件
rpm -ql tftp-server # 查找tftp服务相关的文件
vim /etc/xinetd.d/tftp # 修改tftp配置文件
④将pxelinux.0文件拷贝到站点文件里
rpm -ql syslinux | grep "pxelinux.0" # 查找pxelinux.0文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # 拷贝pxelinus.0到站点文件
⑤在vsftpd文件的家目录新建文件夹,并将光驱挂载到新文件夹上
cd /var/ftp/ #切换到ftp的家目录
mkdir centos7 #建立新文件夹
mount /dev/sr0 centos7/ #将光驱挂载到新建文件夹上
⑥将四大文件中的两个文件从/var/ftp/centos7/image/pxeboot中拷贝到站点文件加中
cd /var/ftp/centos7/images/pxeboot #切换到目标目录下
cp initrd.img /var/lib/tftpboot/ #拷贝initrd.img至站点文件夹下
cp vmlinuz /var/lib/tftpboot/ #拷贝vmlinuz至站点文件夹下
⑦ 手动创建第四大文件,在站点文件夹下
[root@zrsb pxeboot]#cd /var/lib/tftpboot/
[root@zrsb tftpboot]#mkdir pxelinux.cfg
[root@zrsb tftpboot]#cd pxelinux.cfg/
[root@zrsb pxelinux.cfg]#vim default
default zrsb
timeout 600
lable zrsb
kernel vmlinuz
append initrd=initrd.img
methond=ftp://192.168.47.100/centos7
lable test
kernel vmlinuz
append test initrd=initrd.img
methond=ftp://192.168.47.100/centos7
lable recuse
kernel vmlinuz
append recuse initrd=initrd.img
methond=ftp://192.168.47.100/centos7
⑧查看防火墙和selinux是否关闭,关闭之后再开启dhcpd服务、tfpt服务、vsftp服务
[root@zrsb pxelinux.cfg]#systemctl status firewalld.service #查看防火墙的状态
[root@zrsb pxelinux.cfg]#getenforce # 查看selinux的状态
[root@zrsb pxelinux.cfg]#systemctl start dhcpd # 开启dhcpd服务
[root@zrsb pxelinux.cfg]#systemctl start tftp # 开启tftp服务
[root@zrsb pxelinux.cfg]#systemctl start vsftpd # 开启vsftp服务
⑨新建一个机器进行测试(使用虚拟机进行模拟)
四.kickstart 无人值守安装
①安装kickstart软件
yum install system-config-kickstart -y
②在虚拟机上使用图形化界面设置,初始化后的安装设置
(1)使用kickstar工具设置基本配置
(2)安装方法
(3)引导文件
(4)分区,boot分区4G,swap分区4G,根(/)分区剩下所有空间
(5)网络配置
(6)防火墙与selinux设置
(7)显示配置,安装字符界面
(8)安装后脚本
(9)保存操作,及保存位置/etc/ftp/ks.cfg
③设置好之后,修改配置文件/var/lib/tftpboot/pxelinux.cfg/default
[root@zrsb pxelinux.cfg]#vim default
ks=ftp://192.168.47.100/ks.cfg
④可选择较low的图形界面选择安装的系统,也可以不选择,直接安装
(1)将/usr/share/syslinux/下的menu.c32拷贝到/var/lib/tftpboot/站点文件夹下
[root@zrsb ~]# cp /usr/share/syslinux/menu.c32 .
(2)然后修改default
⑤ 客户机测试
步骤四4可以不做,不做4,不会出现下面的界面,直接开机安装,需要等好久之后
五.cobbler的使用
5.1.cobbler的工作原理
(1)client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
(2)DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
(3)client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
(4)cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
(5)client裸机通过上面告知的TFTP server地址通信,下载引导文件
(6)client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
(7)cobbler server发送请求的kickstart和os iamge
(8)client裸机加载kickstart文件
(9)client裸机接收os image,安装该os image
5.2.模拟操作
①安装相关包并启动服务
yum install epel-release.noarch -y # 安装epel源
yum install -y cobbler dhcp httpd tftp -y # 安装相关软件
systemctl start cobblerd httpd tftp #启动软件,其中dhcp最后启动
②cobbler检查系统环境
cobbler check
③生成root的新密码
openssl passwd -1 '123123'
④修改cobbler的配置文件
vim /etc/cobbler/settings # 修改配置文件
# 将生成的root密码的密文填入101行
101行 default_password_crypted: "$1$M/ZUUj1u$yZAWhaOD/Uw7ZSRmKo5gu/"
# 将242行的0改成1,表示通过cobbler生成dhcpd.conf的配置文件
242行 manage_dhcp: 1
# 将dhcp获取地址后的下一个服务(tftp服务)的IP填入278行
278行 next_server: 192.168.47.3
# 将298行的0改成1,表示防止重复安装操作系统
298行 pxe_just_once: 1
# 在390行,将IP地址改为cobbler服务器的IP地址
390行 server: 192.168.47.3
⑤重新启动cobbler服务
systemctl restart cobblerd.service
⑥修改通过cobbler服务生成dhcp.conf配置文件的dhcp的模板文件
vim /etc/cobbler/dhcp.template
subnet 192.168.47.0 netmask 255.255.255.0 {
option routers 192.168.47.2;
option domain-name-servers 8.8.8.8;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.47.10 192.168.47.50;
⑦同步cobbler
cobbler sync
⑧导入CentOS系统的安装文件,生成相应的YUM源
mount /dev/sr0 /mnt #将光驱挂载到mnt下
cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64
# 从/mnt下,将名为centos-7-x86_64的系统导入cobbler服务器中
cobbler system add --name=default --profile=centos-7-x86_64
# 设置默认安装菜单, 这样未装系统的设备会自动从pxe引导启动你需要安装的系统,
不需要再手动接显示器选了。此操作也可以不做
⑨新建一个虚拟机测试
直接启动虚拟机
等待一段时间