1.环境准备
- 操作系统:CentOS Linux release 7.4.1708 (Core)
- 光盘镜像:CentOS-7-x86_64-Everything-1708.iso
- 安装工具:kickstart + dhcp + tftp-server + xinetd+ httpd
- VMware虚拟机
1.1 服务器禁用SELinux,然后进行重启操作
- 查看SELinux状态:sestatus
- 关闭:vim /etc/sysconfig/selinux
1.2 关闭防火墙,设置开机不启动
systemctl status firewalld # 查看防火墙的状态
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 设置开机不启动
systemctl is-enabled firewalld # 查看是否设置开机启动
1.3 软件安装
yum install -y httpd dhcp tftp-server tftp syslinux
yum install -y httpd dhcp tftp-server xinetd syslinux system-config-kickstart
yum groupinstall -y 'X Window System'
rpm -q httpd dhcp tftp-server xinetd syslinux system-config-kickstart
- 重启:reboot
2.软件配置
2.1 DHCP服务配置
2.1.1 修改DHCP配置文件
- 拷贝文件:
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
修改文件:
vim /etc/dhcp/dhcpd.conf
egrep -v "^#|^$" /etc/dhcp/dhcpd.conf
2.1.2 启动DHCP服务
systemctl status dhcpd # 查看dhcp的状态
systemctl start dhcpd # 启动dhcp
systemctl enable dhcpd # 设置开机启动
systemctl is-enabled dhcpd # 查看是否设置开机启动
2.1.3 DHCP服务端口查看
ss -nulp | grep dhcpd
2.2 HTTP服务配置
2.2.1 目录建立及光盘挂载
- 创建目录:mkdir -pv /var/www/html/CentOS7
- 在/mnt目录下创建/cdrom
- 查看光盘镜像挂载位置,进入/dev目录查找光驱,一般是cdrom系统上查询结果:
- 可见系统上用sr0表示光驱,然后就可以挂载了
mount -o loop /dev/sr0 /mnt/cdrom/
- 如果遇到以下问题,则说明镜像没有挂在启动
- 挂载成功
- 挂载:mount --bind /mnt/cdrom/ /var/www/html/CentOS7/
2.2.2 启动HTTP服务,并设置为开机启动
systemctl status httpd # 查看httpd的状态
systemctl start httpd # 启动httpd
systemctl enable httpd # 设置开机启动
systemctl is-enabled httpd # 查看是否设置开机启动
2.3 TFTP服务配置
2.3.1 xinetd配置
- 修改:vim /etc/xinetd.d/tftp
2.3.2 启动tftp.socket服务,并设置为开机启动
systemctl start tftp.socket # 启动tftp.socket
systemctl status tftp.socket # 查看状态
systemctl enable tftp.socket # 设置开机启动
systemctl is-enabled tftp.socket # 查看是否设置为开机启动
2.3.3 启动tftp.service服务,并设置为开机启动
systemctl start tftp.service # 启动tftp.service
systemctl status tftp.service # 查看状态
systemctl enable tftp.service # 设置开机启动
systemctl is-enabled tftp.service # 查看是否设置为开机启动
- 查看端口:ss -unlp | grep 69
2.3.4 启动xinetd服务,并设置为开机启动
systemctl start xinetd # 启动xinetd
systemctl status xinetd # 查看状态
systemctl enable xinetd # 设置开机启动
systemctl is-enabled xinetd # 查看是否设置为开机启动
3.配置文件
需要导入TFTP服务器的主要文件有:
- 引导文件:pxelinux.0
- 内核文件:vmlinuz initrd.img
- 引导菜单:isolinux.cfg – 开机后选择启动项的菜单文
3.1 引导文件pxelinux.0
- 由软件包syslinux生成,安装syslinux软件包
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
3.2 导入内核及菜单文件:vmlinuz initrd.img
cp /mnt/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
- 引导菜单配置文件:isolinux.cfg
- 系统自带的两种窗口模块之一:vesamenu.c32
- 窗口提示信息文件:boot.msg
- 窗口背景图片:splash.png
cp /mnt/cdrom/isolinux/{vesamenu.c32,boot.msg,splash.png} /var/lib/tftpboot/
cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot/
- 新建pxelinux.cfg文件夹:mkdir /var/lib/tftpboot/pxelinux.cfg
3.3 安装引导文件CentOS7.cfg文件
- Xshell下安装system-config-kickstart
- 下载安装Xmanager(官网下载试用)
- 安装好Xmanager,选中10.180.210.217,右击,点击“属性”,选取“隧道”进行配置
- 在控制台执行:
system-config-kickstart
出现以下窗口,进行配置,设置语言,键盘,时区,root密码,安装完毕后重启等
- 关闭,拷贝:
mkdir -pv /var/www/html/ksdir
cp /root/CentOS7.cfg /var/www/html/ksdir/
chmod +r /var/www/html/ksdir/CentOS7.cfg
3.4 复制文件并修改名称,修改default
cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
- 菜单显示等待时间,单位为1/10秒,默认等待60秒,修改菜单等待时间为60,即等待6秒,若无操作则进入默认菜单;
timeout=60
修改为:
label linux
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img
label linux 2
menu label ^Install CentOS by Kickstart
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.120.11/CentOS7 inst.ks=http://192.168.120.11/ksdir/CentOS7.cfg
- 新建虚拟机
- 开机
- PXE配置成功。