1. PXE无人值守安装
服务器IP为192.168.10.253,可以给192.168.10.0/24安装RHEL5.9
分别给每台客户端分配主机名,格式如下
stationx.tarena.com 192.168.10.x
安装所需要的软件包存放在/data/iso/rhel5.9
[root@PXE-Server~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0c:29:ad:f5:27
IPADDR=192.168.0.252
NETMASK=255.255.255.0
GATEWAY=192.168.0.252
[root@PXE-Server~]# /etc/init.d/network restart
正在关闭接口 eth0: [确定]
关闭环回接口: [确定]
弹出环回接口: [确定]
弹出界面 eth0: [确定]
[root@PXE-Server~]# chkconfig --list network
network 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@PXE-Server~]# vim /etc/sysconfig/network
HOSTNAME=PXE-Server.com
NETWORKING=yes
HOSTNAME=os.server
为了使修改直接生效,可以直接再开终端Ctrl+Shift+t
[root@PXE-Server~]# /etc/init.d/NetworkManager status
NetworkManager已停
[root@PXE-Server~]# chkconfig --list NetworkManager
NetworkManager 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
[root@PXE-Server~]# cd /etc/yum.repos.d/
[[email protected]]# ls
rhel-debuginfo.repo
[[email protected]]# cp rhel-debuginfo.repo dvd.repo
[[email protected]]# vim dvd.repo
[rhel-server]
name=RedHat
baseurl=file:///media/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[[email protected]]# yum clean all
[root@PXE-Server~]# yum repolist
Loadedplugins: product-id, security, subscription-manager
Thissystem is not registered to Red Hat Subscription Management. You can usesubscription-manager to register.
rhel-server | 1.5 kB 00:00
rhel-server/primary | 932 kB 00:00
rhel-server 3335/3335
repoid repo name status
rhel-server Red Hat 3,335
repolist:3,335
证明yum源配置正确
[root@PXE-Server~]# /etc/init.d/iptables status
防火墙已停
[root@PXE-Server~]# getenforce
Disabled
[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.6;
default-lease-time 7200;6
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.6; #//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 服务开机自运行
[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";
};
[pxesvr ~]# vim /var/named/chroot/var/named/tarena.com.zone //正向区域数据文件
$TTL1D
@ SOAtarena.com. root.tarena.com. (
2014072101
8H
2H
4H
1D
)
@ IN NS ns.tarena.com.
ns IN A 192.168.4.6
pxesvr IN A 192.168.4.6
ftp IN CNAME pxesvr
$GENERATE 100-200 pc$ IN A 192.168.4.$
[@pxesvr ~]# cat /var/named/chroot/var/named/192.168.4.arpa //反向区域数据文件
$TTL1D
@ SOAtarena.com. root.tarena.com. (
2014072101
8H
2H
4H
1D
)
@ IN NS ns.tarena.com.
6 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.6
[root@pxesvr ~]# host pxesvr.tarena.com //测试,确保 DNS 解析可用
pxesvr.tarena.com has address 192.168.4.6
[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 pointerpc123.tarena.com.
[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 ~]# rpm2cpio /var/ftp/rhel6/Packages/syslinux-4.02-8.el6.x86_64.rpm | \
cpio -id ./usr/share/syslinux/pxelinux.0 提取光盘内的 pxelinux.0 文件
。。。
[root@pxesvr ~]# mv usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
//提取引导RHEL6客户机的网卡启动文件
[root@pxesvr ~]# rm -rf usr/ //清理残留的目录
[root@PXE-Server ~]# find / -name pxelinux.0
/usr/share/syslinux/pxelinux.0
/tftpboot/linux-install/pxelinux.0
[root@server01 ~]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@os chroot]# yum -y install syslinux
[root@oschroot]# cp /var/ftp/redhat6.5/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@oschroot]# cd /var/lib/tftpboot/
[root@ostftpboot]# ls
initrd.img vmlinuz
[root@ostftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@ostftpboot]# ls
initrd.img pxelinux.0 vmlinuz
[root@pxesvr ~]# cd /var/ftp/rhel6/images/pxeboot/ //拷贝引导RHEL6客户机的内核和初始化镜像
[root@pxesvr isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@pxesvr ~]# ls /var/lib/tftpboot/ //确认 TFTP 根目录下部署的文档
initrd.img pxelinux.0 vmlinuz
[root@pxesvr ~]# yum -y install tftp //安装TFTP 客户端命令
[root@pxesvr ~]# tftp 192.168.4.6 -c get pxelinux.0 //连接服务端,测试下载文件
[root@pxesvr ~]# ls -lh pxelinux.0 //确认下载结果
-rw-r--r--. 1 root root 27K 7月 19 21:55 pxelinux.0
[root@PXE-Server ~]# cat /etc/exports
/data/iso/rhel5.9 *(ro)
[root@PXE-Server~]# service portmap restart
[root@PXE-Server~]# service nfs restart
[root@PXE-Server~]# chkconfig portmap on
[root@PXE-Server~]# chkconfig nfs on
[root@server01~]# yum -y install vsftpd
[root@server01 ~]# tail -n 1/etc/vsftpd/vsftpd.conf
anon_root=/var/ftp/
[root@server01~]# service vsftpd restart
[root@server01~]# chkconfig vsftpd on
[root@server01~]# yum -y install httpd
[root@server01 ~]# grep DocumentRoot/etc/httpd/conf/httpd.conf | grep -v"^#"
DocumentRoot "/var/www/html"
[root@server01~]# grep Indexes /etc/httpd/conf.d/welcome.conf
OptionsIndexes
[root@server01~]# service httpd restart
[root@server01~]# chkconfig httpd on
cp/misc/cd/* /var/ftp/redhat6.5
[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 #//加载内核文件时附加的参数
[root@PXE-Server ~]# yum -y installsystem-config-kickstart
操作过程见图片
在/root/ks.cfg文件中添加key --skip
[root@PXE-Server~]# cp /root/ks.cfg /data/iso/rhel5.9/
[root@server01~]# vim /tftpboot/pxelinux.cfg/default
...
10label linux
11 kernel vmlinuz
12 append initrd=initrd.imgks=http://192.168.10.253/ks.cfg
appendinitrd=initrd.img ks=nfs:192.168.10.253:/../ks.cfg
找一台已装好的RHEL 6.4 模板客户机(本例中可选 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.6、/rhel6)
!!!! 分区信息:清除主引导记录、删除所有现存分区、初始化磁盘标签、/boot 200MB、SWAP 2GB、/ 剩余空间
!!!! 网络配置:第一块网卡DHCP自动获取
!!!! 防火墙配置:禁用SELinux、禁用防火墙
!!!! 软件包选择:不安装图形桌面
!!!! 安装后脚本:从 pxesvr 自动下载并部署 YUM 客户端配置、安装并启动 httpd 网站服务
rm -rf /etc/yum.repos.d/*
wget ftp://192.168.4.6/rhel6.repo -O /etc/yum.repos.d/rhel6.repo
yum clean all
yum -y install httpd
echo "I LOVE TARENA" > /var/www/html/index.html
/etc/init.d/httpd start
chkconfig httpd on
!!!! 经上述调整后,另存为应答文件/opt/ks-el6.cfg
[root@PXE-Server~]# rpm -q system-config-kickstart
packagesystem-config-kickstart is not installed
[root@PXE-Server~]# yum -y install system-config-kickstart
……
Installed:
system-config-kickstart.noarch0:2.6.19.9-2.el5
DependencyInstalled:
pykickstart.noarch0:0.43.9-1.el5
Complete!
[root@PXE-Server~]# system-config-kickstart
桌面,选择GNOME
将结果保存
[root@PXE-Server~]# ls
anaconda-ks.cfg install.log ks.cfg
Desktop install.log.syslog
编辑ks.cfg位置
[root@PXE-Server~]# cp ks.cfg /var/ftp/
[root@PXE-Server~]# /etc/init.d/vsftpd restart
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
[root@PXE-Server~]# vim /tftpboot/pxelinux.cfg/default
3timeout 60
11 append ks=ftp://192.168.0.252/ks.cfg initrd=initrd.img
可以在ks.cfg文件中写入一行内容,自动跳过
[root@PXE-Server~]# vim /var/ftp/ks.cfg
12key --skip
OK,准备工作都已经完成,之后就是验证我们操作结果的时候了
新建虚拟机,将网络设置与PXE+Kickstart相同,开机,这是如果你很自信,那么你就可以去喝咖啡了。
对于新安装的系统,查看本机IP、主机名、DNS解析、网关等,可以验证本次操作是否正确。
[root@PXE-Server~]# ls
anaconda-ks.cfg install.log ks.cfg
Desktop install.log.syslog
[root@PXE-Server~]# cd /var/ftp/
[root@PXE-Serverftp]# ls
ks.cfg pub
[root@PXE-Serverftp]# mv ks.cfg ks.cfg.bak
[root@PXE-Serverftp]# ls
ks.cfg.bak pub
[root@PXE-Serverftp]# cd
[root@PXE-Server~]# rpm -q httpd
packagehttpd is not installed
[root@PXE-Server~]# yum -y install httpd
……
Installed:
httpd.x86_640:2.2.3-74.el5
DependencyInstalled:
apr.x86_640:1.2.7-11.el5_6.5
apr-util.x86_640:1.2.7-11.el5_5.2
postgresql-libs.x86_640:8.1.23-6.el5_8
Complete!
[root@PXE-Server~]# /etc/init.d/httpd status
httpd已停
[root@PXE-Server~]# /etc/init.d/httpd start
启动 httpd:httpd: apr_sockaddr_info_get() failedfor PXE-Server
httpd:Could not reliably determine the server's fully qualified domain name, using127.0.0.1 for ServerName
[确定]
[root@PXE-Server~]# vim /etc/httpd/conf/httpd.conf
265#ServerName www.example.com:80
266ServerName www.tarena.com:80
设置主机名
[root@PXE-Server~]# host www.tarena.com
www.tarena.comhas address 192.168.0.252
[root@PXE-Server~]# /etc/init.d/httpd restart
停止 httpd: [确定]
启动 httpd: [确定]
[root@PXE-Server~]# chkconfig --list httpd
httpd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
[root@PXE-Server~]# chkconfig httpd on
[root@PXE-Server~]# chkconfig --list httpd
httpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@PXE-Server~]# ls
anaconda-ks.cfg install.log ks.cfg
Desktop install.log.syslog
[root@PXE-Server~]# cp ks.cfg /var/www/html/
验证是否能够读取该文件
能够成功读取该文件
[root@PXE-Server~]# vim /tftpboot/pxelinux.cfg/default
12 append ks=http://192.168.0.252/ks.cfginitrd=initrd.img
光盘镜像位置还由vsftpd服务提供
[root@PXE-Server~]# vim /var/www/html/ks.cfg
12key --skip
23url --url=ftp://192.168.0.252/pub
安装完成之后查看配置信息
[root@station46~]# ifconfig eth0 |head -n 2
eth0 Link encap:Ethernet HWaddr 00:0C:29:30:69:BB
inetaddr:192.168.0.46 Bcast:192.168.0.255 Mask:255.255.255.0
[root@station46~]# hostname
station46.tarena.com
[root@station46~]# cat /etc/resolv.conf
;generated by /sbin/dhclient-script
searchdomain.org
nameserver192.168.0.252
[root@station46~]# route -n |tail -n 1
0.0.0.0 192.168.0.252 0.0.0.0 UG 0 0 0 eth0