PXE + DHCP+TFTP+ Kickstart+ FTP安装一个无人值守安装的服务器
5大名词解释
PXE:一种引导方式,进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC)
即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
KickStart:KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
TFTP (Trivial File Transfer Protocol),中译简单文件传输协议或小型文件传输协议
实验内容:使用192.168.1.63生成一个ks.cfg供新的服务器使用,从而完成自动安装虚拟机中的系统。
实验准备的环境
• DHCP 服务器用来给客户机分配IP;
• TFTP 服务器用来存放PXE的相关文件,比如:系统引导文件;
• FTP 服务器用来存放系统安装文件;
• KickStart所生成的ks.cfg配置文件;
• 带有一个 PXE 支持网卡的将安装的主机;
步骤
1安装网络yum源
网络yum安装教程
2安装ftp服务器
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
3安装tftp服务
yum install -y tftp tftp-server xinetd
vim /etc/xinetd
修改13,14行的内容为:
13 server_args = -s /tftpboot
14 disable = no
systemctl start xinetd
lsof -i:69
4安装dhcpd服务
yum install -y dhcpd
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcpd/dhcpd.conf
#写入以下的内容
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option domain-name-servers 192.168.1.1;
option domain-name "internal.example.org";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.1.10;
filename "pxelinux.0";
}
新增一块网卡,然后和之前的实验一样,设置成为另一个网络,因为我们需要为我们的虚拟机分配IP地址,
所以选择一块虚拟网段。然后临时将这块网卡配置成为我们的dhcp服务网卡。
ifconfig ens37 192.168.1.10
5配置PXE所需的文件
[[email protected] ~]# yum install -y system-config-kickstart.noarch && syslinux
[[email protected] ~]# mount /dev/cdrom /media/
mount: /dev/sr0 写保护,将以只读方式挂载
[[email protected] ~]# mkdir /tftpboot
[[email protected] ~]# mkdir /tftpboot/pexlinux.cfg
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[[email protected] ~]# cp /media/images/pxeboot/initrd.img /tftpboot/
[[email protected] ~]# cp /media/images/pxeboot/vmlinuz /tftpboot/
[[email protected] ~]# cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[[email protected] ~]# chmod 644 /tftpboot/pxelinux.cfg/default
6修改default,指定安装操作系统的方式和ks.cfg文件路径
[[email protected] pxelinux.cfg]# vim default
#修改第一行是为了在安装的过程中,直接去选择61行的linux
#修改64行是为了确定安装的路径和ks.cfg文件存放位置
1 default linux
64 append initrd=initrd.img inst.repo=ftp://192.168.1.10//pub inst.ks=ftp://192.168.1.10/ks.cfg
7设置一些开机指定的参数
[[email protected] ~]# system-config-kickstart
/usr/share/system-config-kickstart/kickstartGui.py:104: GtkWarning: GtkSpinButton: setting an adjustment with non-zero page size is deprecated
按照我下图修改
基本配置中的密码和时区
根据自己的需求选择
做测试使用,展示使用方法为主
点击左上角的文件,保存,我们保存到root下
7复制ks.cfg到default中指定的文件目录下
[[email protected] ~]# cp ks.cfg /var/ftp
[[email protected] ~]# cd /var/ftp/
[[email protected] ftp]# ls
ks.cfg pub
8配置基于ftp的yum源,用于客户端安装时,读取软件包用
[[email protected] ~]# mount /dev/cdrom /var/ftp/pub/
mount: /dev/sr0 写保护,将以只读方式挂载
[[email protected] ~]# cd /var/ftp/pub/
[[email protected] pub]# ll
总用量 678
-rw-rw-r-- 1 root root 14 5月 2 2018 CentOS_BuildTag
drwxr-xr-x 3 root root 2048 5月 4 2018 EFI
-rw-rw-r-- 1 root root 227 8月 30 2017 EULA
-rw-rw-r-- 1 root root 18009 12月 10 2015 GPL
drwxr-xr-x 3 root root 2048 5月 4 2018 images
drwxr-xr-x 2 root root 2048 5月 4 2018 isolinux
drwxr-xr-x 2 root root 2048 5月 4 2018 LiveOS
drwxrwxr-x 2 root root 655360 5月 4 2018 Packages
drwxrwxr-x 2 root root 4096 5月 4 2018 repodata
-rw-rw-r-- 1 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r-- 1 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 root root 2883 5月 4 2018 TRANS.TBL
9重启服务
[[email protected] ~]# systemctl restart vsftpd
[[email protected] ~]# systemctl restart dhcpd
10打开一个新的虚拟机,然后开始安装
硬盘放大,内存增加,然后记得网卡选择和服务器配置一样的网段。
进入虚拟机,点击F12,进入网络启动模式,然后就可以开始自动化安装了
以下是安装的过程截图
注意事项
#1在选择软件包的安装,我们需要使用本地yum源
#2我们在进行客户机的安装时候,尽量的放大内存和硬盘,不然就会失败。
原理
通俗的来说,就是从不同的服务获得不同的内容,我们使用一台机器模拟许多种服务,然后就可以成功执行了。