PXE 服务器环境
操作系统RHEL 6.5
网卡连接eth0 VMnet1
主机名pxesvr.tarena.com
IP地址192.168.4.5/24
―― 关闭 iptables 防火墙、SELinux防护机制
[root@pxesvr ~]# service iptables stop
[root@pxesvr ~]# chkconfig iptables off
[root@pxesvr ~]# setenforce 0
[root@pxesvr ~]# vim /etc/selinux/config
SELINUX=permissive
2. PXE 客户机
新建一台RHEL6虚拟机裸机
内存1GB
硬盘20GB
光盘无
网卡连接eth0 VMnet1
!!!! 注意客户机与服务器应在同一物理网段并排除其他DHCP服务器的干扰
二搭建PXE装机服务器
1. 准备RHEL 6.5安装源以YUM源的方式提供
[root@pxesvr ~]# yum -y install vsftpd //。。。安装FTP服务器
[root@pxesvr ~]# service vsftpd restart //启动 vsftpd 服务
[root@pxesvr ~]# chkconfig vsftpd on //设置 vsftpd 服务开机自运行
[root@pxesvr ~]# cp -rf /misc/cd/* /var/ftp/rhel6/ //拷贝RHEL6.4光盘中的所有文档
[root@pxesvr ~]# ls /var/ftp/rhel6/ //确认拷贝结果
[root@pxesvr ~]# vim /etc/yum.repos.d/dvd.repo //调整本机的YUM仓库设置以便测试
[rhel-packages]
name=RHEL 6.5 Packages
baseurl=ftp://192.168.4.5/rhel6
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@pxesvr ~]# yum repolist //确保此YUM源可用
2. 启用DNS服务
[root@pxesvr ~]# yum -y install bind bind-chroot
[root@pxesvr ~]# mv /etc/named.conf /etc/named.conf.old //避免默认配置干扰
[root@pxesvr ~]# vim /var/named/chroot/etc/named.conf //DNS服务的主配置文件
options {
directory "/var/named";
};
zone "tarena.com" IN { //定义正向区域
type master;
file "tarena.com.zone";
};
zone "4.168.192.in-addr.arpa" IN { //定义反向区域
type master;
file "192.168.4.arpa";
};
[root@pxesvr ~]# vim /var/named/chroot/var/named/tarena.com.zone //正向区域数据文件
$TTL 1D
@ SOA tarena.com. root.tarena.com. (
2014072101
8H
2H
4H
1D
)
@ IN NS ns.tarena.com.
ns IN A 192.168.4.5
pxesvr IN A 192.168.4.5
ftp IN CNAME pxesvr
$GENERATE 100-200 pc$ IN A 192.168.4.$
[root@pxesvr ~]# vim /var/named/chroot/var/named/192.168.4.arpa //反向区域数据文件
$TTL 1D
@ SOA tarena.com. root.tarena.com. (
2014072101
8H
2H
4H
1D
)
@ IN NS ns.tarena.com.
5 IN PTR pxesvr.tarena.com.
$GENERATE 100-200 $ IN PTR pc$.tarena.com.
[root@pxesvr ~]# service named restart //启动 named 服务
。。。
[root@pxesvr ~]# chkconfig named on //设置 named 服务开机自运行
[root@pxesvr ~]# vim /etc/resolv.conf //设置 DNS 客户端文件
search tarena.com
nameserver 192.168.4.5
[root@pxesvr ~]# host pxesvr.tarena.com //测试确保 DNS 解析可用
pxesvr.tarena.com has address 192.168.4.5
[root@pxesvr ~]# host pc123.tarena.com
pc123.tarena.com has address 192.168.4.123
[root@pxesvr ~]# host 192.168.4.123
123.4.168.192.in-addr.arpa domain name pointer pc123.tarena.com.
3. 启用DHCP服务
[root@pxesvr ~]# yum -y install dhcp //安装 dhcp 服务程序
[root@pxesvr ~]# vim /etc/dhcp/dhcpd.conf
option domain-name "tarena.com";
option domain-name-servers 192.168.4.5;
default-lease-time 7200;
max-lease-time 14400;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option routers 192.168.4.254;
next-server 192.168.4.5; #//TFTP引导服务器的地址
filename "pxelinux.0"; #//网卡引导文件名
}
[root@pxesvr ~]# service dhcpd restart //启动 dhcpd 服务
[root@pxesvr ~]# netstat -anptu | grep dhcpd //查看监听状态
udp 0 0 0.0.0.0:67 0.0.0.0:* 4095/dhcpd
[root@pxesvr ~]# chkconfig dhcpd on //设置 dhcpd 服务开机自运行
4. 启用TFTP服务并提供内核、引导程序
[root@pxesvr ~]# yum -y install tftp-server //安装 TFTP 服务器程序
[root@pxesvr ~]# chkconfig tftp on //将临时服务 tftp 设为启用
[root@pxesvr ~]# service xinetd restart //启用 xinetd 超级服务
[root@pxesvr ~]# netstat -anptu | grep xinetd //查看监听状态
udp 0 0 0.0.0.0:69 0.0.0.0:* 30426/xinetd
[root@pxesvr ~]# chkconfig xinetd on //设置 dhcpd 服务开机自运行
[root@pxesvr ~]# yum -y install syslinux
[root@pxesvr ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
//拷贝引导Linux客户机的网卡启动文件
[root@pxesvr ~]# cd /var/ftp/rhel6/images/pxeboot/ //拷贝引导RHEL6客户机的内核和初始化镜像
[root@pxesvr pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@pxesvr pxeboot]# ls /var/lib/tftpboot/ //确认 TFTP 根目录下部署的文档
initrd.img pxelinux.0 vmlinuz
## 测试 TFTP 服务
[root@pxesvr pxeboot]# cd ~
[root@pxesvr ~]# yum -y install tftp //安装 TFTP 客户端命令
[root@pxesvr ~]# tftp 192.168.4.5 -c get pxelinux.0 //连接服务端测试下载文件
[root@pxesvr ~]# ls -lh pxelinux.0 //确认下载结果
-rw-r--r--. 1 root root 27K 7月 19 21:55 pxelinux.0
5. 为PXE安装配置启动菜单
[root@pxesvr ~]# mkdir /var/lib/tftpboot/pxelinux.cfg //创建启动配置目录
[root@pxesvr ~]# cp /var/ftp/rhel6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
//拷贝模板配置
[root@pxesvr ~]# chmod 755 /var/lib/tftpboot/pxelinux.cfg/default
[root@pxesvr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default //修改默认启动设置
default linux #//默认从哪个标签引导系统
prompt 1 #//是否交互式安装
timeout 600 #//进入默认系统的等待超时单位1/10秒
label linux #//定义名为linux的标签
kernel vmlinuz #//选择此标签时需要加载的内核文件
append initrd=initrd.img #//加载内核文件时附加的参数
三测试 PXE 网络装机
1. 启动一台裸客户机新建虚拟机默认会从网卡启动
!!!! 如果是已有系统的客户机则需要调整BIOS设置将网络引导作为第一启动设备
2. 客户机启动后的基本过程
1自动获取IP地址
2下载 pxelinux.0 引导文件
3读取 pxelinux.cfg/default 配置文件
4在 boot: 后输入要安装的系统标签比如 linux进行选择直接回车或超时过均选择默认
5根据选择结果执行相应的引导文件vmlinuz、initrd
6加载安装向导程序进入交互式安装过程。。。
!!!! 指定采用URL源自动获取IP地址
!!!! 将安装源设置为 ftp://192.168.4.5/rhel6
!!!! 此后的安装设置、分区、软件包定制等过程与光盘安装相同
―― 至此说明 PXE 引导及配置已成功可中止后续手动安装的验证过程
―― 等待后续的 kickstart 无人值守安装测试
四配置 kickstart 无人值守安装
1. 准备应答文件
找一台已装好的RHEL 6.5 模板客户机本例中可选 PXE 服务器本机
通过 system-config-kickstart 工具创建 ks-el6.cfg 应答文件
[root@pxesvr ~]# yum -y install system-config-kickstart
[root@pxesvr ~]# system-config-kickstart //在图形桌面下运行
!!!! 打开 /root/anaconda-ks.cfg 文件作为应答文件模板
!!!! 基本配置指定默认语言、时区、根口令123456
!!!! 安装方式新安装、FTP安装192.168.4.5、/rhel6
!!!! 分区信息清除主引导记录、删除所有现存分区、初始化磁盘标签、/boot 200MB、SWAP 2GB、/ 剩余空间
!!!! 网络配置第一块网卡DHCP自动获取
!!!! 防火墙配置禁用SELinux、禁用防火墙
!!!! 软件包选择不安装图形桌面
!!!! 安装后脚本从 pxesvr 自动下载并部署 YUM 客户端配置、安装并启动 httpd 网站服务
rm -rf /etc/yum.repos.d/*
wget ftp://192.168.4.5/rhel6.repo -O /etc/yum.repos.d/rhel6.repo
yum clean all
yum -y install httpd
echo "I Love Studying" > /var/www/html/index.html
/etc/init.d/httpd start
chkconfig httpd on
!!!! 经上述调整后另存为应答文件 /opt/ks-el6.cfg
2. 在 PXE 服务器上部署应答文件、为客户机准备的YUM配置文件
[root@pxesvr ~]# cp /opt/ks-el6.cfg /var/ftp/ //。。。从模板客户机提交此文件
[root@pxesvr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default //修改引导配置文件
default linux #//默认从哪个标签引导系统
prompt 1 #//是否交互式安装
timeout 600 #//进入默认系统的等待超时单位1/10秒
label linux #//定义名为linux的标签
kernel vmlinuz #//选择此标签时需要加载的内核文件
append ks=ftp://192.168.4.5/ks-el6.cfg initrd=initrd.img #//下载并启用自动应答文件
[root@pxesvr ~]# vim /var/ftp/rhel6.repo
[rhel-packages]
name=RHEL 6.5 Packages
baseurl=ftp://192.168.4.5/rhel6
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@pxesvr ~]# ls /var/ftp/ //确认部署结果
ks-el6.cfg pub rhel6 rhel6.repo
[root@pxesvr ~]# wget ftp://192.168.4.5/rhel6.repo //测试下载上述两文件
[root@pxesvr ~]# wget ftp://192.168.4.5/ks-el6.cfg
[root@pxesvr ~]# ls -lh rhel6.repo ks-el6.cfg //确认下载结果
-rw-r--r--. 1 root root 1.7K 7月 19 23:04 ks-el6.cfg
-rw-r--r--. 1 root root 145 7月 19 23:07 rhel6.repo
3. 启动一台裸客户机新建虚拟机测试无人值守安装
!!!! 安装设置过程会自动应答免手工交互
!!!! 等待客户机系统安装完成
4. 检查装好的客户机确认 POST 脚本设置结果
[root@pc100 ~]# ifconfig eth0 | grep "inet addr" //查看自动配置的IP地址
inet addr:192.168.4.100 Bcast:192.168.4.255 Mask:255.255.255.0
[root@pc100 ~]# chkconfig --list httpd //查看Web服务的自启动状态
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:关闭
[root@pc100 ~]# yum -y install elinks //确保可yum安装软件包
[root@pc100 ~]# elinks --dump http://127.0.0.1 //访问测试网页
I Love Studying