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