一、PXE介绍
PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统。Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件。所以只要Kickstart文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预,就可以自动完成安装工作。
二、工作原理
三、部署步骤
1. 环境规划
操作系统 | IP地址 | 主机名 | 备注 |
Centos7.6 | 192.168.1.20 | PXE | server |
Centos7.6 | DHCP | – |
2. 基础环境准备
关闭selinux
[root@PXE-Node1 ~]# sed -i '/SELINUX=/cSELINUX=disabled' /etc/selinux/config
[root@PXE-Node1 ~]# setenforce 0
关闭firewalld
[root@PXE-Node1 ~]# systemctl stop ebtables firewalld
[root@PXE-Node1 ~]# systemctl disable ebtables firewalld
3. 部署DHCP服务
[root@PXE-Node1 ~]# yum -y install dhcp
[root@PXE-Node1 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@PXE-Node1 ~]# vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option domain-name-servers 192.168.10.10;
option domain-name "192.168.10.10";
option routers 192.168.10.2;
option broadcast-address 192.168.10.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.10.10;
filename "pxelinux.0";
}
[root@PXE-Node1 ~]# systemctl restart dhcpd
[root@PXE-Node1 ~]# systemctl enable dhcpd
4. 部署TFTP服务
[root@PXE-Node1 ~]# yum -y install tftp-server xinetd
[root@PXE-Node1 ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
TFTP是一种非常精简的文件传输服务程序,它的运行和关闭是由xinetd网络守护进程服务来管理的。xinetd服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。需要开启TFTP服务程序,只需在xinetd服务程序的配置文件中把disable参数改成no就可以了。保存配置文件并退出,然后重启xinetd服务程序,并将其加入到开机启动项中(在RHEL 7系统中,已经默认启用了xinetd服务程序,因此在将其添加到开机启动项中的时候没有输出信息属于正常情况)。
[root@PXE-Node1 ~]# systemctl restart xinetd tftp
[root@PXE-Node1 ~]# systemctl enable xinetd tftp
5. 配置SYSLinux服务程序
SYSLinux是一个用于提供引导加载的服务程序。与其说SYSLinux是一个服务程序,不如说更需要里面的引导文件,在安装好SYSLinux服务程序软件包后,/usr/share/syslinux目录中会出现很多引导文件。
[root@PXE-Node1 ~]# yum -y install syslinux
[root@PXE-Node1 ~]# mount /dev/sr0 /mnt/
[root@PXE-Node1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@PXE-Node1 ~]# cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@PXE-Node1 ~]# cp /mnt/isolinux/{vesamenu.c32,boot.msg} /var/lib/tftpboot/
[root@PXE-Node1 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@PXE-Node1 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@PXE-Node1 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet
6. 配置http/ftp服务
[root@PXE-Node1 ~]# yum -y install vsftpd
[root@PXE-Node1 ~]# systemctl restart vsftpd
[root@PXE-Node1 ~]# systemctl enable vsftpd
[root@PXE-Node1 ~]# cp -r /mnt/* /var/ftp/
7. 创建KickStart应答文件
方法一:
[root@PXE-Node1 ~]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
[root@PXE-Node1 ~]# chmod a+r /var/ftp/pub/ks.cfg
[root@PXE-Node1 ~]# cat /var/ftp/pub/ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url=ftp://192.168.10.10
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=eth0 --ipv6=auto
network --hostname=localhost.localdomain
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
# Root password
rootpw --iscrypted $6$ZqzIladlhGgj9gqX$MjGhUXb0iNdm6.VHNc24wT2BdolYo7yJuk63bNWVsh4UIs4E0wIGILlu8OaOZxLyM59hOFhMhXIoh3i2e55.Q1# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc
user --name=chenjf -password=$6$z.A/VtdoMfAx5/bh$XSO4ZkEu24cD4wgbwrf./dQCJ61AoLXhQa8zrrnJgLoVHvW8hznad3zwdIQfc0juY5edTM8EFORBV5vxhwZvS/ --iscrypted --gecos="chenjf"
# X Window System configuration information
xconfig --startxonboot
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.253 --fstype="lvmpv" --ondisk=sda --size=121855
volgroup centos --pesize=4096 pv.253
logvol /soft --fstype="xfs" --size=15356 --name=soft --vgname=centos
logvol swap --fstype="swap" --size=4096 --name=swap --vgname=centos
logvol / --fstype="xfs" --size=102400 --name=root --vgname=centos
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
chrony
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
方法二:
[root@PXE-Node1 ~]# yum -y install system-config-kickstart
[root@PXE-Node1 ~]# system-config-kickstart
8. 客户端测试:
© 版权声明
本站所有内容(包括但不限于文字、图片、视频等)均受到版权法保护,归作者所有,未经授权不得转载、复制或用于其他任何商业目的。
转载请注明出处,并保留原文链接。对于未经授权的使用,我们将保留追究法律责任的权利。
THE END
暂无评论内容