使用kickstart實作Centos 自動化安裝
Kickstart自動化安裝簡介:
規模化:同時裝配多台 伺服器
自動化 :安裝系統,配置各種服務
遠端實作:不需要CD光牒,U盤等安裝媒體
優勢:
(1)流線自動化的安裝
(2)快速大量的裸機部署
(3)強制建立的一緻性(軟體包,分區,配置,監控,安全性)
(4)減少人為的部署失誤
使用Kickstart方法安裝的過程: (1). 建立一個kickstart檔案 (2). 建立有kickstart檔案的引導媒體或者使這個檔案在網絡上可用; (3). 籌備一個安裝樹 (4). 開始ks安裝:anconda自身啟動 –>選取ks安裝模式–> 從ks檔案讀取配置 –> 最後安裝 建立kickstart配置檔案的方式: (1). 文本編輯器(vim)等 (2). 用圖形化界面配置:system-config-kickstat(需要安裝system-config-kickstart.noarch包
PXE(preboot execute environment, )是由Intel公司開發的最新技術,工作client/server的網絡 模式,支援工作通過網絡從遠端伺服器 下載下傳映像,并由此支援 通過網絡啟動作業系統 ,在啟動過程中,終端要求伺服器 配置設定IP位址,在用TFTP或MTFTP協定下載下傳一個啟動軟體包到本機記憶體中執行,更有這個啟動軟體 包完成終端基本軟體設定,進而引導預先安裝在伺服器終端 作業系統,PXE可以引導 多種作業系統.
- 預啟動執行環境,在作業系統之前運作
- 可用于遠端安裝,建構無盤工作站
服務端:遠端DHCP服務,用來配置設定位址,定位引導程式;
運作TFTP伺服器,提供引導程式下載下傳
用戶端 :網卡支援PXE協定
主機闆支援 網絡啟動
基本部署過程:
- 準備rhel/centOS安裝源(YUM倉庫)
- 啟動TFTP服務,并提供核心,引導程式
- 啟動 DHCP服務,用來配置設定位址,指出引導程式位置
- 配置啟動菜單
【DHCP,TFTP安裝】
[root@kickstart ~]# mkdir /media/cdrom [root@kickstart ~]# mount /dev/cdrom /media/cdrom/
[root@kickstart ~]# yum install -y dhcp* tftp*
[root@kickstart ~]# grep disable /etc/xinetd.d/tftp | awk -F = '{print $2}' | sed -i 's#yes#no#g' /etc/xinetd.d/tftp
no [root@kickstart ~]# grep disable /etc/xinetd.d/tftp disable = no
1:TFTP+PXE配置
要實作遠端安裝系統,首先需要在tftpboot目錄指定相關PXE相關核心子產品機制相關參數,配置步驟如下:
Ps:如果系統 是5.x,預設tftpboot目錄已經自動建立到/根目錄下
[root@localhost ~]# yum install -y syslinux
[root@kickstart ]# find / -name "pxelinux.0"
/usr/share/syslinux/pxelinux.0
[root@kickstart-server ~]# ln -s /var/lib/tftpboot/ /
[root@kickstart-server ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[root@localhost tftpboot]# cp /media/cdrom/images/pxeboot/* /tftpboot/ #将系統核心拷貝tftpboot目錄下
[root@kickstart ~]# ls /tftpboot/
initrd.img pxelinux.0 TRANS.TBL vmlinuz
[root@localhost tftpboot]# rm -rf TRANS.TBL
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
[root@localhost tftpboot]# mkdir -p pxelinux.cfg
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 pxelinux.cfg vmlinuz
[root@localhost tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
[root@localhost tftpboot]# vim pxelinux.cfg/default
label centos6.5
kernel vmlinuz
append ks=nfs:192.168.2.136:/Centos_install/ks.cfg ksdevice=eth0 initrd=initrd.img

詳解:192.168.2.136 是kickstart伺服器,
/Centos_install是nfs共享 linux鏡像 的目錄,也就是linux存放安裝檔案的路徑;
ks.cfg是kickstart主配置檔案;
Ksdevel-eth0代表當我們有多塊網卡 的時候,要實作自動化需要設定從eth0安裝
[root@kickstart tftpboot]# chkconfig tftp on #TFTP配置完成之後,由于tftp不是獨立服務,需要依賴xinetd服務來啟動 [root@kickstart tftpboot]# service xinetd restart
2:NFS+kickstart配置
遠端系統安裝 ,用戶端需要下載下傳系統所需的軟體包,是以需要使用NFS或HTTPD把鏡像檔案共享出來
[root@kickstart ~]# yum install -y nfs*
[root@kickstart ~]# mkdir /Centos_install/ #建立NFS共享目錄,要與default目錄一緻
[root@kickstart ~]# nohup cp -rf /media/cdrom/* /Centos_install/ & #背景拷貝
[root@kickstart ~]# echo "/Centos_install/ *(rw,sync)" >> /etc/exports #在NFS配置檔案/etc/exports中加入如上語句:/Centos_install *(rw,sync),表示允許任何主機通路/Centos_install目錄,有讀寫權限。
自定義ks.cfg,并賦予權限為chmod 777 ks.cfg
[root@localhost ~]# vim /centosinstall/ks.cfg #這裡ks.cfg需要注意一下,并沒有按照anaconda-ks.cfg内容修改,該配置相容性 較強,經過優化處理~可上生産~
#kickstart file automatically generated by anaconda.
install
text
nfs --server=192.168.2.136 --dir=/Centos_install/ #kickstart位址
key --skip
lang zh_CN,UTF-8
keyboard us
network --device eth0 --bootproto=dhcp --noipv6
rootpw 123456 #系統密碼為123456
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
clearpart --all --initlabel
part /boot --fstype ext3 --size=200
part swap --size=1000
part / --fstype ext3 --size=10000
part /data --fstype ext3 --size=1 --grow
%packages
@base
@development-libs
@development-tools
mtools
pax
libxmu
%end
#給配置檔案權限,并重新開機服務
[root@kickstart Centos_install]# chmod 777 ks.cfg
[root@kickstart-server ~]# service xinetd restart
[root@kickstart-server centosinstall]# service nfs restart
3:[DHCP服務]
[root@localhost ~]# yum install -y dhcp
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.200; #可配置設定起始IP-結束IP位址池
option routers 192.168.2.136;
option subnet-mask 255.255.255.0;
default-lease-time 21600; #設定預設的IP租用期限
max-lease-time 43200; #設定IP最大租用期限
next-server 192.168.2.136; #TFTP伺服器IP位址
filename "pxelinux.0";
}
OK到目前為止,kickstart服務端的配置已經全部配置完成!為了保證服務正常生效,我們最後一次重新開機一下三個服務!
[root@localhost ~]# /etc/init.d/dhcpd restart
[root@localhost ~]# /etc/init.d/xinetd restart
[root@localhost ~]# /etc/init.d/nfs restart
用戶端驗證,是否自動化安裝部署系統
建立rheld虛拟機(ps:要保證系統和服務屬于同一個網段)
輸入使用者名和密碼(123456)即可登入系統