实现方法:Kickstart+HTTP+DHCP+TFTP+PXElinux
这是一个很古老的方法,但是很实用。
步骤1 安装lkickstart所需组件
网络yum安装程序的前提是能上网,yum配置正确。也可以配置本地yum源。
yum -y install httpd* dhcp tftp* xinetd*
步骤2 web服务器的配置
现在版本的yum安装好的apache web服务器,在没有特殊需求的时候,几乎不需要配置。只需要把文件传到/var/www/html/这个根目录下,开启httpd进程就可使用。如果访问不了的话有可能是网络问题或者防火墙的问题,排查一下即可。
步骤3 拷贝磁盘镜像到apache根目录
mount /dev/cdrom /media //挂在光盘 rsync -av /media/ /var/www/html/
步骤4 配置DHCP服务
这里把我的DHCP配置文件内容共享一下,具体涉及到的各种IP地址问题,请根据个人具体情况进行修改。
ddns-update-style interim; allow booting; allow bootp; ignore client-updates; set vendorclass = option vendor-class-identifier; subnet 10.1.1.0 netmask 255.255.248.0 { option routers 10.1.1.250; #DHCP服务器的IP option domain-name-servers 202.106.0.20,8.8.8.8; #指定DNS服务器地址,多个用逗号,分割 option subnet-mask 255.255.248.0; range dynamic-bootp 10.1.1.200 10.1.1.253; #可供此DHCP服务器地址分配的IP地址池 filename "/pxelinux.0"; default-lease-time 21600; max-lease-time 43200; next-server 10.1.1.250;#引导服务器,用于bootp方式的引导,可以指向一个tftp服务器,并在tftp服务器上提供引导文件 } #group for Cobbler DHCP tag: default group { }
步骤5 配置tftp和tftpboot
tftp服务是通过xinetd这个守护进程来进行管理的,开启tftp服务需要修改守护进程配置文件中关于tftp的配置
vim /etc/xinetd.d/tftp 将disable = yes 改为 disable = no
将安装需要的文件拷贝到tftpboot目录下,如果目录不存在的话,自行创建。
mkdir -p /tftpboot/ cd /tftpboot/ cp /usr/share/syslinux/pxelinux.0 /tftpboot/ cp /var/www/html/images/pxeboot/initrd.img /tftpboot/ cp /var/www/html/images/pxeboot/vmlinuz /tftpboot/ cp /var/www/html/isolinux/*.msg /tftpboot/
在/tftpboot目录中新建一个pxelinux.cfg目录,并将Linux安装光盘上isolinux目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更名为default。
mkdir -p /tftpboot/pxelinux.cfg cp /var/www/html/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
修改/tftpboot/pxelinux.cfg/default文件,在第一行添加ks.cfg访问地址。将timeout选项可设为1;,意思是直接引导,不给用户手动选择的时间。
default text ks= prompt 1 timeout 1
步骤6 完成ks.cfg文件的配置
我没有通过kickstart的管理命令生成ks.cfg,而是根据本机安装/root/目录下的anaconda-ks.cfg修改后投入使用的。我感觉这样有助于了解里面个个参数的意义,在情况有些许变动的情况下能有的放矢。
在/var/www/html/目录下(apache的主目录下)创建ks.cfg文件:
cd /var/www/html/ touch ks.cfg chmod 755 ks.cfg vim ks.cfg
ks.cfg内容如下:
# Kickstart file automatically generated by anaconda. #version=DEVEL install #cdrom lang zh_CN.UTF-8 keyboard us network --onboot no --device em1 --bootproto dhcp --noipv6 network --onboot no --device em2 --bootproto dhcp --noipv6 network --onboot no --device p2p1 --bootproto dhcp --noipv6 network --onboot no --device p2p2 --bootproto dhcp --noipv6 rootpw --iscrypted $6$bw2zqLppav3sKp0i$Ww6C.dPKbSptx.PuxCnNE/JIP6zw3096rUjRX.2vjFzrjJvJBEExou5sZ9UoShvllR3tKl4Fxnxtbf9PuHJKD/ firewall --service=ssh authconfig --enableshadow --passalgo=sha512 selinux --disabled timezone --utc Asia/Shanghai bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work #clearpart --none clearpart --all --initlabel part /boot --fstype=ext4 --size=200 part swap --size=8192 part / --fstype=ext4 --grow --size=200 repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100 %packages @chinese-support @core @server-policy @workstation-policy %end
具体参数可具体根据需求自行调整。
启动或重启相关的http,dhcp,tftp(xinetd)进程。不建议设置为开机启动。
步骤7 测试
找一台设备,连接到kickstart服务器所在网络,选择PXE网络启动即可。安装过程中可能会遇到一些问题,按照提示都很容易解决,这里就不列举可能出现的问题了。
本文出自 “运维之道” 博客,转载请与作者联系!