日常工作中运维新手都会被要求安装Linux操作系统,当只有十几台服务器时还能够轻松应付过来,假若有一天公司规模扩大领导要求给几百台服务器安装Linux操作系统,那我们再按照原始方式使用光盘镜像来一台一台安装操作系统,其效率就会相当低了。这时候我们便可以部署PXE+Kickstart无人值守安装操作系统,它可以批量自动安装操作系统。

服务部署(PXE + TFTP + DHCP + Vsftpd + Kickstart)

实验环境

  1. VMware 12 虚拟机
  2. REHL6.5系统(网卡模式:仅主机模式 IP地址:192.168.100.4)

一、安装TFTP服务

  1. 安装tftp服务

    yum  install tftp-server -y        
  2. 修改tftp配置文件,开启tftp服务
    vim /etc/xinetd.d/tftp

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
#修改disable的值修改为no
disable = no (开启tftp)
per_source = 11
cps = 100 2
flags = IPv4
}

  1. 添加xinetd服务并设置init3/5开机自动开启

chkconfig --add xinetd
chkconfig --level 35 xinetd on

二、安装DHCP服务

  1. 安装dhcp服务

    yum  install dhcp -y
  2. 复制dhcp模板替换为当前dhcp配置文件

    cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
  3. 编辑dhcpd配置文件
    vim /etc/dhcp/dhcpd.conf

ddns-update-style none; #支持DNS动态更新,一般选择关闭
next-server 192.168.100.4; #指定TFTP服务器地址
filename "/pxelinux.0"; #引导文件TFTP上的位置

subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.150 192.168.100.200;
option routers 192.168.100.4;
}

  1. 添加dhcpd服务并设置init3/5开机自动开启

chkconfig --add dhcpd
chkconfig --level 35 dhcpd on

三、安装Vsftpd服务

  1. 安装vsftpd服务
    yum install vsftpd -y
  2. 加载系统镜像盘到vsftpd的默认目录下
    mount /dev/cdrom /var/ftp/pub
  3. 添加vsftpd服务并设置init3/5开机自动开启

chkconfig --add vsftpd
chkconfig --level 35 vsftpd on


以下复制网络启动所需要文件到tftp服务器的根目录下

#安装引导加载程序
yum -y instll syslinux

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default //安装菜单
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot //linux引导加载模块//
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/ //压缩内核//
cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot //图形化安装菜单

启动dhcpd/vsftpd/xinetd服务:

service dhcpd restart
service vsftpd restart
service xinetd start

关闭防火墙及安全设置(不然tftp无法下载引导程序)

service iptables stop
setenforce 0

四、kickstart生成自动安装配置

  1. 安装kickstart软件包
    yum -y install system-config-kickstart
  2. 在图形界面上打开kickstart进行配置,最终默认保存在/root/ks.cfg中

#新建ksconfig目录
mkdir /var/ftp/ksconfig
#将配置文件复制到ksconfig目录下
cp /root/ks.cfg /var/ftp/ksconfig/

  1. 编辑default配置,指定ks.conf路径地址
vim /var/lib/tftpboot/pxelinux.cfg/default

default vesamenu.c32
prompt 0
timeout 1
…………
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append ks=ftp://192.168.100.4/ksconfig/ks.cfg initrd=initrd.img #指定ks.cfg配置文件路径

测试

在VMware中新建一台rhel6.5 x86_64 操作系统,网络模式为:仅主机模式、仅主机模式、仅主机模式(重要的事情说三遍)然后便可以自动获取IP地址、开始加载引导文件及系统镜像开始安装操作系统了。
[亲测可用] PXE无人值守自动装机
[亲测可用] PXE无人值守自动装机
[亲测可用] PXE无人值守自动装机
[亲测可用] PXE无人值守自动装机
[亲测可用] PXE无人值守自动装机
[亲测可用] PXE无人值守自动装机
[亲测可用] PXE无人值守自动装机
[亲测可用] PXE无人值守自动装机