原理:
1、客户机可以通过服务端dhcp在获取IP地址,并且dhcpd服务器会告诉客户端tftp服务器IP地址。
2、pxe客户端会从tftp服务器上下载pxelinux.0操作系统和这个操作系统对应的配置文件(default)至本机,在本机上运行pxelinux.0这个操作系统,这个操作系统会加载自己的配置文件:default.
default加载后会弹出一个安装系统选择界面,让用户去选择要安装哪个操作系统
tftp的作用是实现安装文件UDP快速传输
3、启动第三个临时系统(vmlinuz/initrd.img),构造安装之前一个临时系统环境,在这里会重新
获取IP地址,并且会读取ks.cfg这个配置文件
4、nfs/http/ftp用来导出红帽系统安装目录树
5、根据ks.cfg来自动完成操作系统的安装
1)部署nfs/ftp/http用于导出红帽的光盘目录树
# iptables -F
# service iptables save
# setenforce 0
vsftpd配置:
# yum -y install vsftpd httpd
# mkdir /var/ftp/pub/rhel6.3
# mount -o loop /root/Desktop/rhel6.iso /var/ftp/pub/rhel6.3/ --rhel6.iso是指rhel6.3镜像
# echo '/bin/mount -o loop /root/root/Desktop/rhel6.iso /var/ftp/pub/rhel6.3' >>/etc/rc.local
# service vsftpd start
# chkconfig vsftpd on
httpd的配置:
# ln -s /var/ftp/pub/ /var/www/html/pub
# service httpd start
# chkconfig httpd on
nfs的配置:
# vim /etc/exports
/var/ftp/ *(ro)
# service nfs restart
# service portmap restart
# chkconfig nfs on
# chkconfig rpcbind on
验证以上三个服务是否能正常提供服务
2. Configure the files on the tftp server necessary for PXE booting.
1)安装并启动tftp服务器
# yum -y install tftp-server
# chkconfig tftp on
# service xinetd restart
# netstat -unlp |grep :69
udp 0 0 0.0.0.0:69 0.0.0.0:* 11007/xinetd
2)拷贝PXE系统启动时所需要的文件至tftp发布目录(/tftpboot)
# mkdir /var/lib/tftpboot/rhel6.3
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cd /var/ftp/pub/rhel6.3/isolinux/
# cp vmlinuz initrd.img /var/lib/tftpboot/rhel6.3--从光盘中复制临时操作系统至tftp的共享目录中
# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default--从光盘中复制pxe操作系统的配置文件及相关文件
# cp boot.msg splash.jpg /var/lib/tftpboot/pxelinux.cfg/
# yum -y install syslinux --这里要先安装syslinux
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/--把PXE的操作系统存放至tftp共享目录
3)生成ks.cfg
# yum -y install system-config-kickstart
# system-config-kickstart
***********************************************************
下面我只是很简单给大家演示一下,大家根据具体的要求来部署。
***********************************************************
#大家根据自己需要选择要安装的软件包。
#上图是在安装完成之后的执行命令操作,在这里我就添加一个普通用户。然后就保存。(如下图)
# mkdir /var/ftp/pub/scripts
# mv /root/Desktop/ks.cfg /var/ftp/pub/scripts/
# vim /var/lib/tftpboot/pxelinux.cfg/default
default local
prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to Red Hat Enterprise Linux 6.3!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label auto
menu label ^Install or upgrade an existing system
menu default
kernel rhel6.3/vmlinuz
append initrd=rhel6.3/initrd.img ks=ftp://192.168.254.178/pub/scripts/ks.cfg
#打开浏览器看看是否可以访问ftp://192.168.254.178/pub/scripts/ks.cfg。还有就是确保红色箭头所指的路径可以访问到rhel6.3的镜像。
3. Configure DHCP.
# yum -y install dhcp
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
# vim /etc/dhcp/dhcpd.conf
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
option domain-name-servers 192.168.254.178;
option domain-name "gupt12.com";
subnet 192.168.254.0 netmask 255.255.255.0 {
range 192.168.254.10 192.168.254.200;
option routers 192.168.254.178;
next-server 192.168.254.178;
filename "pxelinux.0";
}
# yum -y install bind
# vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1;any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; any; };
recursion yes;
后面内容省略
vim /etc/named.rfc1912.zones
zone "gupt12.com" IN {
type master;
file "gupt12.com.zone";
allow-update { none; }
};
zone "254.168.192.in-addr.arpa" IN {
type master;
file "192.168.254.rev";
allow-update { none; };
};
# cd /var/named/
# cp -a named.localhost gupt12.com.zone
# vim gupt12.com.zone
$TTL 1D
@ IN SOA dns.gupt12.com. root.gupt12.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.gupt12.com.
dns IN A 192.168.254.178
# cp -a gupt12.com.zone 192.168.254.rev
# for i in {1..254}; do echo station$i IN A 192.168.254.$i >> /var/named/gupt12.com.zone ; done
# for i in {1..254}; do echo $i IN PTR station$i.gupt12.com. >> /var/named/192.168.254.rev ; done
#确保所以服务都已经启动。客户端都改为桥接方式。
#有必要说明一下,在下面还要手动输入auto,因为我是想通过多种方式来安装。大家可以参考 /var/lib/tftpboot/pxelinux.cfg/default里面的内容,可以自己修改的。
#出现上面的画面证明安装已经成功。用户名gupt12 密码redhat 。