CentOS6.4 kickstart部署
概述
Kickstart 是RedHat 公司开发的自动安装部署工具,kickstart批量部署工具利用主板PXE模式加载DHCP服务器上的pxelinux.0文件来加载引导内核启动安装程序,安装ks.cfg预定义的动作完成自动安装任务。
部署
以CentOS6.4为例: 服务端需要如下服务
dhcp服务器 : 要求可以正常分配ip并且指定TFTP服务器
vsftp 服务器 : 用于存放 Yum 仓库
tftp 服务器 : 存放系统安装所需要的引导文件pxelinux.0文件、启动菜单、内核vmlinuz及initrd.img、ks无人值守配置文件ks.cfg
pxelinux.0 pxe专用启动引导文件,/usr/share/syslinux 目录中找到,直接存放在TFTP要目录即可(也可在/etc/dhcpd.conf 指定)
客户端需要
支持PXE启动的网卡
具体过程
建好Yum源,vsftp/PXE 启动的准备工作
取出安装光盘或同步网络上的源来制作好Yum源(ftp访问方式),创建一个基于 Comps.xml 的软件仓库
mkdir -pv /var/ftp/pub/images
cd /var/ftp/pub/images
wget http://mirrors.163.com/centos/6.4/os/x86_64/images/install.img
tfpt/PXE 启动的准备工作
mkdir -pv /tftpboot/pxelinux.cfg
cp /usr/share/syslinux/pxelinux.0 /tftpboot/
cd /tftpboot/
wget http://mirrors.163.com/centos/6.4/os/x86_64/images/pxeboot/initrd.img
wget http://mirrors.163.com/centos/6.4/os/x86_64/images/pxeboot/vmlinuz
创建 /tftpboot/pxelinux.cfg/default 文件
default pxeboot
#prompt 1
timeout 6
label pxeboot
menu AutoInstall CentOS 6.4 With Pxeboot
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.1.1/pub/ks.cfg
创建 /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot #开机必需的程序路径(根据的tftpboot路径更改)
disable = no #把这边的yes改为no
per_source = 11
cps = 100 2
flags = IPv4
}
DHCP/PXE 准备工作相关配置
添加相应配置 /etc/dhcpd.conf
option domain-name "regulusos.org";
option domain-name-servers 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
filename "pxelinux.0";
next-server 192.168.1.1;
range dynamic-bootp 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
}
最后的工作
将准备好的kickstart配置文件复制到指定位置:(我们在/tftpboot/pxelinux.cfg/default文件中曾设置ks=ftp://192.168.1.1/pub/ks.cfg) 按照之前的预设,将文件复制到FTP服务的根目录:
cp ks.cfg /var/ftp/ /var/ftp/pub/ 目录是VSFTP服务的根目录
启动需要部署的服务器,让PXE从tftp自动引导安装过程,如果一且顺利你现在可以喝一杯咖啡,或者出去活动活动筋骨再来看看结果!
ks.cfg 参考配置文件
文件中 root 密码是 qwer1234
firewall --disabled
install
url --url="ftp://192.168.1.1/pub"
rootpw --iscrypted $1$qsdgeWL8$95GRTNbk3Ni7XerD2JZZ71
auth --useshadow --passalgo=sha512
text
keyboard us
lang en_US
selinux --enforcing
logging --level=info
timezone Asia/Harbin
network --bootproto=bootp --device=eth0 --onboot=on
zerombr yes
bootloader --location=mbr --driveorder=sda
clearpart --all --initlabel
part / --fstype=ext4 --size=6000
part swap --grow --size=1024
repo --name="CentOS" --baseurl=ftp://192.168.1.1/pub --cost=100
reboot
%packages --nobase
@core
%end