1.PXE无人值守安装
1) 实验一:搭建PXE Server
服务器IP为192.168.10.253,可以给192.168.10.0/24安装RHEL5.9
分别给每台客户端分配主机名,格式如下
192.168.10.x
安装所需要的软件包存放在/data/iso/rhel5.9
1.网络配置
编辑网卡配置文件
[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-
NETWORKING=yes
HOSTNAME=os.server
为了使修改直接生效,可以直接再开终端Ctrl+Shift+t
关闭NetworkManager服务(非必须)
[root@PXE-Server~]# /etc/init.d/NetworkManager status
NetworkManager已停
[root@PXE-Server~]# chkconfig --list NetworkManager
NetworkManager 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
配置yum源文件
[root@PXE-Server~]# cd /etc/yum.repos.d/
[root@PXE-Serveryum.repos.d]# ls
rhel-debuginfo.repo
[root@PXE-Serveryum.repos.d]# cp rhel-debuginfo.repo dvd.repo
[root@PXE-Serveryum.repos.d]# 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
[root@PXE-Serveryum.repos.d]# yum clean all
查看yum源的配置情况
[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-server3335/3335
repoid repo name status
rhel-server Red Hat 3,335
repolist:3,335
证明yum源配置正确
确定防火墙与SELinux关闭
[root@PXE-Server~]# /etc/init.d/iptables status
防火墙已停
[root@PXE-Server~]# getenforce
Disabled
2.实验步骤:
01. 配置DHCP(给需要安装系统的主机分配ip)
[root@pxesvr~]# yum -y installdhcp //安装 dhcp 服务程序
[root@pxesvr~]# vim /etc/dhcp/dhcpd.conf
option domain-name "";
option domain-name-servers 192.168.4.6;
default-lease-time 7200;6
max-lease-time 14400;
subnet192.168.4.0 netmask 255.255.255.0{
range192.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 服务开机自运行
02. 配置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 "" IN { //定义正向区域
type master;
file ".zone";
};
zone"4.168.192.in-addr.arpa" IN { //定义反向区域
type master;
file "192.168.4.arpa";
};
[pxesvr ~]# vim/var/named/chroot/var/named/.zone //正向区域数据文件
$TTL1D
@ . . (
072101
8H
2H
4H
1D
)
@ IN NS .
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
@ . . (
072101
8H
2H
4H
1D
)
@ IN NS .
6 IN PTR .
$GENERATE 100-200 $ IN PTR pc$..
[root@pxesvr ~]# servicenamed restart //启动 named 服务
。。。
[root@pxesvr ~]# chkconfignamed on //设置 named 服务开机自运行
[root@pxesvr ~]# vim/etc/resolv.conf //设置 DNS 客户端文件
Search
nameserver 192.168.4.6
[root@pxesvr ~]# //测试,确保 DNS 解析可用
has address 192.168.4.6
[root@pxesvr ~]# host
has address 192.168.4.123
[root@pxesvr ~]# host192.168.4.123
123.4.168.192.in-addr.arpa domain name .
03. 配置TFTP
[root@pxesvr ~]# yum-y install tftp-server //安装 TFTP 服务器程序
[root@pxesvr ~]# chkconfigtftp on //将临时服务 tftp 设为启用
[root@pxesvr ~]# servicexinetd restart //启用 xinetd 超级服务
[root@pxesvr ~]# netstat-anptu | grepxinetd //查看监听状态
udp 0 0 0.0.0.0:69 0.0.0.0:* 30426/xinetd
[root@pxesvr ~]# chkconfigxinetd on //设置 dhcpd 服务开机自运行
04. 准备装机文件initrd.imgpxelinux.0 vmlinuz
a)提取 pxelinux.0
法1直接从光盘目录提取
[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 ~]# mvusr/share/syslinux/pxelinux.0/var/lib/tftpboot/
//提取引导RHEL6客户机的网卡启动文件
[root@pxesvr ~]# rm-rf usr/ //清理残留的目录
法2查找pxelinux.0文件,因为本机开机时也需要该文件,所以本机上必然存在。
[root@PXE-Server ~]# find / -name pxelinux.0
/usr/share/syslinux/pxelinux.0
/tftpboot/linux-install/pxelinux.0
法3 安装 安装syslinux 提取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.imgpxelinux.0 vmlinuz
b)提取initrd.img 和 vmlinuz 文件
[root@pxesvr ~]# cd /var/ftp/rhel6/p_w_picpaths/pxeboot/ //拷贝引导RHEL6客户机的内核和初始化镜像
[root@pxesvr isolinux]# cpvmlinuz initrd.img /var/lib/tftpboot/
[root@pxesvr ~]# ls/var/lib/tftpboot/ //确认 TFTP 根目录下部署的文档
initrd.imgpxelinux.0 vmlinuz
c)测试 TFTP 服务 (可选)
[root@pxesvr ~]# yum-y install tftp //安装TFTP 客户端命令
[root@pxesvr ~]# tftp192.168.4.6 -c getpxelinux.0 //连接服务端,测试下载文件
[root@pxesvr ~]# ls-lh pxelinux.0 //确认下载结果
-rw-r--r--. 1 root root 27K 7月 19 21:55 pxelinux.0
05. NFS共享网络装机
[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
06. FTP网络装机
[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
07. HTTP网络装机
[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
08. 准备安装光盘
cp/misc/cd/* /var/ftp/redhat6.5
3.为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 #//选择此标签时,需要加载的内核文件
appendinitrd=initrd.img #//加载内核文件时附加的参数
2) 实验二:通过Kickstart实现无人值守安装(接着实验一)
[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
4. 文字:准备应答文件
找一台已装好的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/*
wgetftp://192.168.4.6/rhel6.repo-O /etc/yum.repos.d/rhel6.repo
yum clean all
yum -y installhttpd
echo "I LOVETARENA" > /var/www/html/index.html
/etc/init.d/httpdstart
chkconfighttpd on
!!!!经上述调整后,另存为应答文件/opt/ks-el6.cfg
5.图片:安装软件包
[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
安装方法选择
引导装在程序,使用默认值
6.分区信息
7.网络配置,添加网络设备,曹勇DHCP自动获取IP
8.验证,使用默认值
9.防火墙配置,全部禁用
10.显示配置,可根据情况调整
11.软件包选择
桌面,选择GNOME
12.用用程序的选择
13.开发的选择,可随意,可不选,在企业中根据是否有发开情况协商之后选择
14.服务器选择
15.基本系统的选择
16.语言支持,选择中文与英文
17.安装前脚本、安装后脚本暂时不需书写
将结果保存
18.文件名ks.cfg,保存位置随意,可以之后调整
3) 编辑ks.cfg文件
19.移动文件
[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: [确定]
20.编辑default文件,说明应答文件的位置
[root@PXE-Server~]# vim /tftpboot/pxelinux.cfg/default
3timeout 60
11 append ks=ftp://192.168.0.252/ks.cfg initrd=initrd.img
21.通过浏览器可以查看到ks.cfg文件
22.在安装时有一个注意事项,需要安装码
可以在ks.cfg文件中写入一行内容,自动跳过
[root@PXE-Server~]# vim /var/ftp/ks.cfg
12key --skip
OK,准备工作都已经完成,之后就是验证我们操作结果的时候了
新建虚拟机,将网络设置与PXE+Kickstart相同,开机,这是如果你很自信,那么你就可以去喝咖啡了。
4) 验证
对于新安装的系统,查看本机IP、主机名、DNS解析、网关等,可以验证本次操作是否正确。
5) 扩展
23.使用httpd服务,提供ks.cfg文件,修改default文件
将vsftpd提供的ks.cfg备份
[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
安装httpd软件包
[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!
启动httpd服务
[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
[确定]
编辑httpd的主配置文件
[root@PXE-Server~]# vim /etc/httpd/conf/httpd.conf
265#ServerName :80
266ServerName :80
设置主机名
查看之前的解析是否对应
[root@PXE-Server~]# host
has address 192.168.0.252
重启httpd服务并设置为开机启动
[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:关闭
将ks.cfg文件移动到httpd服务的主目录下
[root@PXE-Server~]# ls
anaconda-ks.cfg install.log ks.cfg
Desktop install.log.syslog
[root@PXE-Server~]# cp ks.cfg /var/www/html/
验证是否能够读取该文件
能够成功读取该文件
修改default文件
[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.46Bcast:192.168.0.255Mask:255.255.255.0
[root@station46~]# hostname
[root@station46~]# cat /etc/resolv.conf
;generated by /sbin/dhclient-script
nameserver192.168.0.252
[root@station46~]# route -n |tail -n 1
0.0.0.0 192.168.0.252 0.0.0.0 UG0 0 0 eth0