Linux下搭建无人执守安装服务器
什么是PXE
PXE(预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP或MTFTP协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。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,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
什么是Kickstart
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。
设置BIOS引导顺序为: 硬盘,网络
前提:硬盘中没有系统。否则直接从硬盘启动了
PXE+Kickstart 无人值守安装操作系统完整过程如下:
一:实验环境:
服务端:xuegod-63 IP:192.168.1.63 网卡模式: vmnet4
客户端:xuegod-64 IP:192.168.1.64 网卡模式: vmnet4
二:实验代码
第一块:安装ftp,tftp服务部分
1.安装ftp服务以及开启服务,设置为开机自动启动。
[root@xuegod-63 ~]# yum install vsftpd -y
[root@xuegod-63 ~]# service vsftpd restart
[root@xuegod-63 ~]# chkconfig vsftpd on
2.安装TFTP,修改tftp配置文件及开启服务
[root@xuegod-63 ~]# yum install tftp tftp-server xinetd -y
[root@xuegod-63 ~]# vim /etc/xinetd.d/tftp #修改下面红色部分
#server_args = -s /tftpboot是tftp服务器运行时的参数。-s /tftpboot表示服务器默认的目录是 /tftpboot
1)接着重新启动xinetd服务,然后查看服务端口是否打开。
[root@xuegod-63 ~]# /etc/init.d/xinetd restart
[root@xuegod-63 ~]# netstat -anutp | grep xinetd
udp 0 0 0.0.0.0:69 0.0.0.
#OK,TFTP服务正常启动。Xinetd服务本来就是开机启动的,所以这里我们不再需要设置。
第二块:安装dhcp,修改配置文件及开启服务:
1:配置DHCP服务器:
[root@xuegod-63 ~]# yum install dhcp –y
[root@xuegod-63 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? Y #复制配置模板文件到DHCP的配置目录中
2:修改配置文件
[root@xuegod-63 ~]# vim /etc/dhcp/dhcpd.conf
# A slightly different configuration for an internal subnet.
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 {。。。}
3:启动DHCP,设置为开机启动
[root@xuegod-63 ~]# service dhcpd restart
[root@xuegod-63 ~]# chkconfig dhcpd on
第三块:配置使用PXE,kickstart 启动所需的相关文件
1:安装软件:安装包
[root@xuegod-63]# yum -y install system-config-kickstart #安装此包时,会把syslinux软件包也安装上。
2:准备tftp需要共享出去的文件
[root@xuegod-63 ~]# grep tftpboot /etc/xinetd.d/tftp
server_args= -s /var/lib/tftpboot
[root@xuegod-63 ~]# vim /etc/xinetd.d/tftp
[root@xuegod-63 ~]# mkdir /tftpboot
[root@xuegod-63 ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/#注,只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件。 复制pxelinux.0 文件至/tftpboot/ 文件夹中。
[root@xuegod-63 ~]# cp /mnt/p_w_picpaths/pxeboot/initrd.img /tftpboot/#虚拟到内存中的镜像文件
[root@xuegod-63 ~]# cp /mnt/p_w_picpaths/pxeboot/vmlinuz /tftpboot/#内核
[root@xuegod-63 ~]# mkdir /tftpboot/pxelinux.cfg
#将iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default
[root@xuegod-63 ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default #系统启动
[root@xuegod-63 ~]# chmod 644 /tftpboot/pxelinux.cfg/default#或者给755权限
3:修改/tftpboot/pxelinux.cfg/default的配置文件
[root@xuegod-63 ~]# vim /tftpboot/pxelinux.cfg/default
#文件里面需要修改两行,修改第1行,linux意思是寻找下面18行的label linux,然后修改下22行(即在后面添加ks=ftp://192.168.1.63/ks.cfg)。第22行的意思是使安装程序通过FTP服务器访问主机是192.168.1.63的kickstart文件。
#以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件。
4:打开终端输入system-config-kickstart弹出来界面。
[root@xuegod63 ~]# echo $LANG
en_US.UTF-8
[root@xuegod63 ~]#.UTF-8
[root@xuegod-63 ~]# system-config-kickstart#执行system-config-kickstart弹出来界面。
设置自己后期无人执守安装需要配置的参数:
我们设置下默认安装的语言,时区,根口令,然后勾选下面的安装后重新引导。然后选择安装方法。
我们配置ftp服务器的安装方法。选择执行全新安装。然后点击引导装载程序选项
配置grub相关选项。
设置分区大小
配置网络,默认没有网络设置,点击添加网络,设备名称为eth0,网络类型为dhcp
验证,默认就可以了。
防火墙和selinux根据自己需求选择开启或者禁用。选择关闭selinux和防火墙。
打上对勾以图形界面安装系统:
#自定义软件包,默认可能没有勾选桌面。根据自己需求勾选。 我们为了快速度演示安装,不选择安装桌面。
#安装脚本:在"预安装脚本","安装后脚本"对话框中,可以分别添加在安装前、安装后自动动行的可执行语句。此项设置可以使服务器自动化配置变得更加容易。
例如:配置客户机在完成安装后自动设置YUM仓库。
rm -rf /etc/yum.repos.d/*
echo '[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' > /etc/yum.repos.d/rhel6.repo
点击左上角的文件选择保存,选择下保存的路径 到此所有关于安装的配置已经配置完毕,
[root@test1 ~]#cp /root/ks.cfg /var/ftp #复制ks.cfg文件到/var/ftp目录下
注:ks.cfg就是无人值守安装时要用的Kickstart文件。
要对应:/tftpboot/pxelinux.cfg/default文件中设置过ks=ftp://192.168.10.1/ks.cfg
配置基于ftp的yum源,用于客户端安装时,读取软件包用:
5:检测各项参数
[root@xuegod-63 ~]# vim /var/ftp/ks.cfg
[root@xuegod-63 ~]# vim /tftpboot/pxelinux.cfg/default
#此时这里两处必须要显示一致
1)挂载光盘并查看
[root@xuegod-63 ~]# mount /dev/cdrom /var/ftp/pub/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@xuegod-63 ~]# mount
/dev/sr0 on /var/ftp/pub type iso9660 (ro)
2)重启服务
[root@xuegod-63 ~]# getenforce
Disabled
[root@xuegod-63 ~]# service vsftpd restart
3)清空防火墙并保存
[root@xuegod-63 ~]# iptables -F
[root@xuegod-63 ~]# service iptables save
4)查看
修改xuegod64 BIOS启动顺序为网络优先,加电后开始启动。
检查安装后,是否执行了脚本