PXE技术实现Linux系统自动化安装

一、安装配置dhcp服务器

# yum -y install dhcp
# cd /etc/dhcp
# cp /usr/share/doc/dhcp-4.1.4/dhcpd.conf.sample ./;dhcp安装完成后默认配置文件中是空的,复制一个样例配置文件过来方便修改。

修改配置文件,定义dhcp服务器的工作属性

# vim dhcpd.conf

options段定义了dhcp服务器的工作特性:

wKiom1PwahTDLS0DAADEcadFxpA055.jpg

subnet段定义dhcp服务器服务的网络:

wKioL1Pwa16jBalSAADDZ_arpos013.jpg

注:搜索域是当查找某主机时比如使用ping操作,如果主机名不是FQDN格式的,那么在查找时会将搜索域的名称自动的添加到查找的主机名称后面进行查询。搜索域定义在/etc/resolve.conf文件中,书写的格式为:search localdomain test.com

配置完成后,检查语法错误,启动服务:

# service dhcpd configtest
# service dhcpd start
# chkconfig dhcpd on
# ss -unl;dhcp服务监听在udp的67号端口,查询结果如下:

wKioL1Pwb8qhts8JAADf5ycOSa8611.jpg

# tail /var/lib/dhcpd/dhcpd.leases;用于查看dhcp服务租用信息

如果在虚拟机中测试给客户端分配IP地址,建议指定一个vmnet通道的方式来测试,看dhcp服务器是否可以给客户端分配IP,这样虚拟机软件本身不会有为客户端自动分配IP的情况出现。

二、安装tftp服务器

# yum -y install tftp tftp-server;安装tftp的时候会自动将其依赖的xinetd包安装上,这是一个超级守护进程,用来管理很多瞬时守护进程的,独立守护进程的脚本文件在/etc/rc.d/init.d/下,瞬时守护进程的脚本文件在/etc/xinetd.d/目录下。
# service xinetd start
# chkconfig --list

wKioL1PweKrRyX3rAAFu1VIU24A877.jpg

可以看到xinetd负责的服务里面有tftp

# cd /etc/xinetd.d
# vim tftp.conf;将disable条目的值改为no

wKiom1PwdkGyVUb7AAC65r65dq4429.jpg

# chkconfig tftp on;也可以达到使tftp服务启动的效果,如果修改了配置文件或者设置了tftp开机启动,还要重启一下xinetd进程,才能看到tftp监听的状态。
# service xinetd restart;查看服务启动状态,如下图,可以看到tftp监听的69号端口启动状态:

wKiom1PwecjSvsIeAAEX44gCYTE987.jpg

三、准备系统自动化安装所需的文件

1、安装syslinux包,生成pxelinux.0文件

# yum install -y syslinux
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

2、挂载光盘,复制光盘中需要用到的各引导文件

# mount -r /dev/cdrom /media
# cd /media
# cp isolinux/{vesamenu.c32,splash.jpg} /var/lib/tftpboot
# cp images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cp isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

四、配置apache服务器

# service httpd start
# chkconfig httpd on

准备yum源和kickstart文件,假设用光盘做yum源,其他的类型都可以,只要挂载到apache服务器的站点根目录下就可以。

# mkdir /var/www/html/centos6
# mount -r /dev/cdrom /var/www/html/centos6
# yum install -y system-config-kickstart;安装kickstart配置工具
# system-config-kickstart;运行该工具后,可以基于现有系统的安装配置文件来修改。

wKioL1PwheDAauzeAAGnDvrHgvA939.jpg

指定安装源,这步很关键:

wKiom1PwhPTBSQQmAAHHXL1cMJY511.jpg

编辑完成后,保存该文件:

wKioL1PwhkyhWrjTAADHIT_-ozs204.jpg

生成新的kickstart文件:

wKiom1PwhWqwVe9NAAC1rvUOzL4329.jpg

# cp /root/ks.cfg /var/www/html/;将编辑过的ks.cfg文件复制到httpd站点根目录下以备使用。

另外我们很可能需要手动编辑一下这个文件,其中有几个位置比较重要需要留意,如果设置的有问题就需要改动:

1、url --url="http://192.168.1.139/centos6";这行定义必须要有,因为在自动化安装过程中需要读取光盘镜像文件的根目录下images目录下的install.img等文件,如果路径指定有错误,会直接报错,如下图:

wKioL1PwnKWjW-WwAAERKZVmWfw873.jpg

2、在配置文件中指定yum源的位置,即repo --name="CentOS" --baseurl=http://192.168.1.139/centos6,这里面的IP和目录都要根据具体安装环境做具体的设置。如果有多个yum源,可以同时指定多个,如图中的"Fedora EPEL"源,这个源是光盘自带的yum源的补充,如果需要安装光盘中没有的rpm包,就需要指定这个源的具体位置,当然也可以没有这个yum源,这要看需要安装的rpm包在哪种源中提供了。总的来说,前面2个指定的路径一定要有,而且要正确。

wKioL1Pwl7GyikFGAAFfUn3btUQ201.jpg

补充:很多情况下我们挂载光盘镜像都是挂载到指定的挂载目录下,比如/media/cdrom目录,而挂载的时候可以选择不卸载挂载点,直接将需要用光盘的目录与光盘的挂载点目录绑定,操作方法:

# mount --bind /media/cdrom /var/www/html/centos6


你可能感兴趣的:(自动安装,ks)