Linux下自动批量部署操作系统

本文主要介绍Linux下使用kickstart进行自动批量安装系统。

1. kickstart简介

Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,这些参数都记录在ks.cfg的文件中, 安装程序按照预先设置好的参数进行部署操作系统。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。

kickstart是基于pxe(preboot execute environment)技术,pxe是intel公司的技术,工作server/client的网络模式,支持客户端从服务端下载软件,再使用tftp(trival file tranfer protocol) 协议下载一个启动软件包到客户端内存中执行。

要求的技术和服务:

(1) http服务器或者用nfs,ftp三种协议之一 共享安装光盘目录文件
(2) tftp服务器 共享启动引导文件
(3) dhcp服务器 客户端获取IP,网关,DNS指向,主机名,NIS域,NTP
(4) kickstart程序生成的ks.cfg配置文件

2. 实践

  • 第一步,搭建安装源
1
2
3
4
# yum install httpd -y									安装httpd
# mkdir /var/www/html/iso 创建一个目录
# mount /opt/packs/CentOS-6.5-x86_64-bin-DVD1.iso /var/www/html/iso -o loop 将光盘挂载
# service httpd start 要保证可以通过http方式获取光盘里的内容
  • 第二步,配置tftp服务器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# yum install tftp-server								安装tftp
# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -t -s -v /var/lib/tftpboot 启动参数改为-t -s -v
disable = no yes改为no
per_source = 11
cps = 100 2
flags = IPv4
}
# service xinetd start
# netstat -ntlup |grep :69 确认tftp启动了
  • 第三步,配置pxe启动文件
1
2
3
4
5
6
7
8
9
10
11
12
13
# yum install syslinux -y
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# cp /var/www/html/iso/isolinux/* /var/lib/tftpboot/
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cp /var/www/html/iso/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
# vim /var/lib/tftpboot/pxelinux.cfg/default
default linux-rzx
prompt 1
timeout 3

label linux-rzx
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.1.99/ks/ks.cfg
  • 第四步,搭建DHCP服务器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# yum install dhcp -y
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
# vim /etc/dhcp/dhcpd.conf

log-facility local7;

next-server 192.168.1.99;
filename "/var/lib/tftpboot/pxelinux.0";
allow bootp;
allow booting;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.100;
option domain-name-servers 192.168.1.1;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
}
# /etc/init.d/dhcpd restart
  • 第五步,配置kickstart
1
2
# yum install system-config-kickstart   				安装kickstart的图形配置工具
# system-config-kickstart 运行该命令生成ks.cfg文件

这里说明一点:如果系统中没有安装图形,是不能运行system-config-kickstart的。

生成ks.cfg文件之后,将其放到Apache的数据目录,以便在安装系统时,可以下载到。

1
2
# mkdir /var/www/html/ks/
# ks.cfg /var/www/html/ks/
  • 第六步,安装

服务器启动时,选择网络启动方式优先。

---------------- The End ----------------