PXE无人值守环境部署:
本实验采用CentOS7
环境准备:
- 安装软件:
yum -y install vsftpd dhcp tftp syslinux tftp-server
- 拷贝镜像文件:
将光盘挂载到/media/cdrom下,然后复制文件到/var/ftp/pub/dvd/中。
mount /dev/sr0 /media/cdrom/
mkdir /var/www/html/cdrom
cp -rf /media/cdrom/* /var/www/html/cdrom
- 配置DHCP服务器:
文件配置如下所示:
subnet 192.168.110.0 netmask 255.255.255.0 {
range 192.168.110.100 192.168.110.200; #IP地址根据自己情况定
option domain-name-servers ns1.internal.example.org; #对于本实验无关紧要
option domain-name internal.example.org; #对于本实验无关紧要
option routers 192.168.110.2; #网关地址
option broadcast-address 192.168.110.255; #广播地址
default-lease-time 600; #连接时间
max-lease-time 7200;
next-server 192.168.110.132; #tftp服务器地址(这里我使用的本机,即DHCP服务器)
filename “pxelinux.0”; #这个很重要
}
- 配置tftp服务:
vim/etc/xinetd.d/tftp
文件内容如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot 设置默认工作目录
disable = no 设置开机自启动
per_source = 11
cps = 100 2
flags = IPv4
}
- 拷贝文件到tftp工作目录:
首先需要创建该目录:
mkdir -p /tftpboot/pxelinux.cfg
cp /var/ftp/pub/dvd/isolinux/isolinux.cfg /tftpboot/p
xelinux.cfg/default
cp /usr/share/syslinux/pxelinux.0 /tftpboot/
chmod 644 /tftpboot/pxelinux.cfg/default
cp /var/ftp/pub/dvd/isolinux/* /tftpboot/
- 配置ks.cfg
- 安装kickstart:yum install system-config-kickstart
- 配置:system-config-kickstart 打开该软件按自己需求进行配置
这是我的配置的文件:
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$1tpeOOLp$Mm3r.RDO0SSGSpAoNuoEy.
# Use network installation
url --url="http://192.168.110.132/cdrom"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Network information
network --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part / --fstype="xfs" --size=2000
part swap --fstype="swap" --size=2000
%post
cd /etc/yum.repos.d
rm -rf *
echo -e "[base]" > base.repo
echo -e "name=Base" >>base.repo
echo -e "baseurl=ftp://192.168.110.132/cdrom" >>base.repo
echo -e "enabled=1" >> base.repo
echo -e "gpgcheck=0" >>base.repo
%end
%packages
@base
%end
注:该文件也需要放在httpd工作目录下。
- 文件拷贝:
将以下文件从其他地方拷贝到/var/lib/tftpboot下:
cp /media/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /media/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp -r /media/cdrom/isolinux/* /var/lib/tftpboot
-r--r--r--. 1 root root 2048 May 11 20:53 boot.cat
-rw-r--r--. 1 root root 84 May 11 20:53 boot.msg
-rw-r--r--. 1 root root 293 May 11 20:53 grub.conf
-rw-r--r--. 1 root root 43372552 May 14 00:21 initrd.img
-rw-r--r--. 1 root root 24576 May 11 20:53 isolinux.bin
-rw-r--r--. 1 root root 3068 May 11 20:53 isolinux.cfg
-rw-r--r--. 1 root root 190896 May 11 20:53 memtest
-rw-r--r--. 1 root root 55012 May 14 00:49 menu.c32
-rw-r--r--. 1 root root 26764 May 14 00:21 pxelinux.0
drwxr-xr-x. 2 root root 43 May 14 00:48 pxelinux.cfg #这是个目录
-rw-r--r--. 1 root root 186 May 11 20:53 splash.png
-r--r--r--. 1 root root 2215 May 11 20:53 TRANS.TBL
-rw-r--r--. 1 root root 152976 May 11 20:53 vesamenu.c32
-rwxr-xr-x. 1 root root 5392080 May 14 00:21 vmlinuz
这是pxelinux.cfg下的文件:
-rw-r–r–. 1 root root 243 May 21 15:16 default
内容如下:
default menu.c32
prompt 0
timeout 300
label linux
menu label ^Install CentOS Linux 7 From Remote
kernel vmlinuz
append initrd=initrd.img inst.stage2=http://192.168.110.132/cdrom devfs=nomount ks=http://192.168.110.132/ks.cfg
menu end
用于定义启动菜单,自动安装文件在哪个服务器下等。
- 配置/etc/xinetd.d/tftp:
[root@dhcp-server ~]# cd /etc/xinetd.d/
[root@dhcp-server xinetd.d]# ll
total 48
-rw-------. 1 root root 1157 Nov 5 2016 chargen-dgram
-rw-------. 1 root root 1159 Nov 5 2016 chargen-stream
-rw-------. 1 root root 1157 Nov 5 2016 daytime-dgram
-rw-------. 1 root root 1159 Nov 5 2016 daytime-stream
-rw-------. 1 root root 1157 Nov 5 2016 discard-dgram
-rw-------. 1 root root 1159 Nov 5 2016 discard-stream
-rw-------. 1 root root 1148 Nov 5 2016 echo-dgram
-rw-------. 1 root root 1150 Nov 5 2016 echo-stream
-rw-------. 1 root root 1212 Nov 5 2016 tcpmux-server
-rw-r--r--. 1 root root 219 May 21 15:16 tftp #该文件
-rw-------. 1 root root 1149 Nov 5 2016 time-dgram
-rw-------. 1 root root 1150 Nov 5 2016 time-stream
#内容如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no #将yes该为no
per_source = 11
cps = 100 2
flags = IPv4
}
检验效果:
启动所有服务,关闭防火墙。
获取IP,加载TFTP服务器文件。
启动菜单。
自动开始安装。
有不足之处望见谅,指出我好更正。