方法:PXE + DHCP+TFTP+ Kickstart+ FTP
原理:
无人值守安装服务器:DHCP TFTP/tftpboot FTP提供安装包
客户端:PXE网卡 PXE网卡中集成TFTP客户端
概念:
1:PXE
什么是PXE 严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
网卡中必须有PXE芯片
协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。
运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。
此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件
2:KickStart
KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装
==============================================================================================================
要求:
1:设置BIOS引导顺序为: 硬盘,网络
如果从网络启动那就一直死循环的安装了
2:硬盘中没有系统。否则直接从硬盘启动了
模式: C/S 模式
实验环境:
服务端:xuegod63.cn IP:192.168.1.63 网卡模式: vmnet4
客户端:xuegod64.cn IP:192.168.1.64 网卡模式: vmnet4
执行 PXE + KickStart安装需要准备内容:
• DHCP 服务器用来给客户机分配IP;
• TFTP 服务器用来存放PXE的相关文件,比如:系统引导文件;
• FTP 服务器用来存放系统安装文件,镜像;
• KickStart所生成的ks.cfg配置文件;
• 带有一个 PXE 支持网卡的将安装的主机;
=================================================================================
开始配置
一:安装所需要的服务及修改相应配置文件:
1.用yum来安装所需要的软件包,先来搭建yum光盘源:
[root@xuegod63 ~]# mount /dev/cdrom /mnt
在/etc/yum.repos.d目录下创建一个以.repo结尾的文件:
[root@xuegod63 ~]# vim /etc/yum.repos.d/serverl.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
2.安装ftp服务以及开启服务,设置为开机自动启动。
[root@xuegod63 ~]# yum install vsftpd -y
[root@xuegod63 ~]# /etc/init.d/vsftpd start
[root@xuegod63 ~]# chkconfig vsftpd on
3:安装TFTP,修改tftp配置文件及开启服务
[root@xuegod63 ~]# yum install tftp tftp-server xinetd -y
[root@xuegod63 ~]# vim /etc/xinetd.d/tftp
server_args = -s /tftpboot
disable = no
server_args = -s /tftpboot是tftp服务器运行时的参数。-s /tftpboot表示服务器默认的目录是 /tftpboot
接着重新启动xinetd服务,然后查看服务端口是否打开。
[root@xuegod63 ~]# service xinetd restart
[root@xuegod63 ~]# lsof -i:69
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 2370 root 5u IPv4 16102 0t0 UDP *:tftp
Xinetd服务本来就是开机启动的,所以这里我们不再需要设置。
4:安装dhcp,修改配置文件及开启服务:
[root@xuegod63 ~]# yum install dhcp -y
[root@xuegod63 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
[root@xuegod63 ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option domain-name-servers 192.168.1.1;
option domain-name "internal.example.org";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.1.63;
filename "pxelinux.0";
}
注: 只保留一个subnet {。。。},其他全注释掉
[root@xuegod63 ~]# /etc/init.d/dhcpd start
[root@xuegod63 ~]# chkconfig dhcpd on
二.配置使用PXE启动所需的相关文件
1:安装软件
[root@xuegod63 ~]# yum install system-config-kickstart -y
2:准备tftp需要共享出去的文件
[root@xuegod63 ~]# grep tftpboot /etc/xinetd.d/tftp
server_args = -s /tftpboot
[root@xuegod63 ~]# mkdir /tftpboot
[root@xuegod63 ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
#只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件
[root@xuegod63 ~]# mkdir /tftpboot/pxelinux.cfg
[root@xuegod63 ~]# cp /mnt/rhel6/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@xuegod63 ~]# cp /mnt/rhel6/images/pxeboot/initrd.img /tftpboot/
[root@xuegod63 ~]# cp /mnt/rhel6/images/pxeboot/vmlinuz /tftpboot/
[root@xuegod63 ~]# chmod 644 /tftpboot/pxelinux.cfg/default
3:编辑配置文件
[root@xuegod63 ~]# vim /tftpboot/pxelinux.cfg/default
default linux
append initrd=initrd.img ks=ftp://192.168.1.63/ks.cfg
文件里面需要修改两行,修改第1行,后面的linux意思是寻找下面18行的label linux,
然后修改下22行(即在后面添加ks=ftp://192.168.1.63/ks.cfg)。第22行的意思是使安装程序通过FTP服务器访问kickstart文件。
以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件
4:使用kickstart
[root@xuegod63 ~]# echo $LANG
en_US.UTF-8
[root@xuegod63 ~]# LANG=zh_CN.UTF-8
[root@xuegod63 ~]# system-config-kickstart #弹出配置界面,设置自己后期无人执守安装需要配置的参数
保存好后退出
5:配置基于ftp的yum源,用于客户端安装时,读取软件包用:
[root@xuegod63 ~]# mount /dev/cdrom /var/ftp/pub/ #挂载RHEL6安装光盘到/var/ftp/pub目录
[root@xuegod63 ~]# service vsftpd restart
关闭selinux,清空iptables
如果没有关闭的话,tftp服务会有问题。
[root@xuegod63 ~]# getenforce
Disabled
设置防火墙:
#iptables -F
#service iptables save
配置两台机器的网络模式为:VMnet4
修改xuegod64 BIOS启动顺序为网络优先,加电后开始启动
6:测试
进入虚拟机bios发现一闪而过
记事本打开虚拟机配置文件(.vmx文件),该文件位于所安装的虚拟机目录(不是虚拟机软件目录)
在最前面加入:bios.bootDelay = "5000";5000为5秒
这样等待启动时间长一点
网络优先
等待安装结束
成功
方法二:使用无人值守安装脚本