Centos7 實戰Kickstart 批量系統部署

1、kickstart 使用背景介紹
大家想個問題,我們平時手動光盤安裝一臺linux系統的多久能完成?10分鐘?半小時?1小時還是一上午?領導說小李明天到100臺服務器你統一裝成linux系統,週日交工。啊?100臺?你是不是要哭了…… 於是乎,kickstart 自動化安裝平臺就誕生了,哇哈哈!
2、kickstart 原理
① PXE 客戶端發送UDP廣播請求
  PXE 客戶端從自己的PXE網卡啓動,通過PXE BootROM(自啓動芯片)會以UDP(簡單用戶數據報協議)發送一個廣播請求,向本網絡中的DHCP服務器索取IP。
② DHCP服務器提供信息
  DHCP服務器收到客戶端的請求,驗證是否來至合法的PXE 客戶端的請求,驗證通過它將給客戶端一個“提供”響應,這個“提供”響應中包含了爲客戶端分配的IP地址、pxelinux啓動程序(TFTP)位置,以及配置文件所在位置。
③ PXE客戶端請求下載啓動文件
  客戶端收到服務器的“迴應”後,會迴應一個幀,以請求傳送啓動所需文件。這些啓動文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
④ TETP服務器響應客戶端請求並傳送文件
  當服務器收到客戶端的請求後,他們之間之後將有更多的信息在客戶端與服務器之間作應答, 用以決定啓動參數。BootROM由TFTP通訊協議從tftp服務器 下載啓動安裝程序所必須的文件(pxelinux.0、pxelinux.cfg/default)。default文件下載完成後,會根據該文件中定義的引導順序,啓動Linux安裝程序的引導內核。
⑤ 請求下載自動應答文件
  客戶端通過pxelinux.cfg/default文件成功的引導Linux安裝內核後,安裝程序首先必須確定你通過什麼安裝介質來安裝linux,如果是通過網絡安裝(NFS, FTP, HTTP),則會在這個時候初始化網絡,並定位安裝源位置。接着會讀取default文件中指定的自動應答文件ks.cfg所在位置,根據該位置請求下載該文件。
⑥ 客戶端安裝操作系統
  將ks.cfg文件下載回來後,通過該文件找到http鏡像,並按照該文件的配置請求下載安裝過程需要的軟件包。
  http鏡像和客戶端建立連接後,將開始傳輸軟件包,客戶端將開始安裝操作系統。
  安裝完成後,將提示重新引導計算機。

所有要使用kickstart安裝平臺,完整架構包括(dhcp、http、tftp、pxe)等

3、kickstart 平臺搭建
基於yum安裝dhcp、tftp、httpd服務,
yum install httpd httpd-devel tftp-server xinetd dhcpd -y

 1)配置tftp服務,開啓tftp服務
 修改配置文件 /etc/xinetd.d/tftp 如下:
 cat>/etc/xinetd.d/tftp<<EOF
    service tftp
                    {
                    disable = no
                    socket_type = dgram
                    protocol = udp
                    wait = yes
                    user = root
                    server = /usr/sbin/in.tftpd
                    server_args = -u nobody -s /tftpboot
                    per_source = 11
                    cps = 100 2
                    flags = IPv4
                    }
        注:只需要disable=yes 改成 no 即可

2 )TFTP+PXE 配置
#掛載掛盤
mount /dev/cdrom /mnt/cdrom
#安裝syslinux必備文件
yum install syslinux syslinux-devel -y
#創建配置文件目錄並拷貝配置文件
mkdir -p /var/lib/tftpboot/pxelinux.cfg
\cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
\cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/
\cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
\cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
\cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
\chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
3)配置TFTPBOOT引導文件,
cat >>/var/lib/tftpboot/pexlinux.cfg/default <<EOF
default vesamenu.c32
timeout 10
display boot.msg
menu clear
menu background splash.png
menu title CentOS Linux 7
label linux
menu label ^Install CentOS Linux 7
menu default
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.10.128/centos7 quiet ks=http://192.168.10.128/ks.cfg
label check
menu label Test this ^media & install CentOS Linux 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
EOF

註解:192.168.10.128是kickstart服務器地址,centos7是httpd共享linux鏡像的目錄,ks.cfg是kickstart主配置文件,timeout 超時時間,label linux 和label check 是linux開機啓動顯示的菜單,選擇菜單後,對應裏面的操作。
TFTP配置完畢,由於TFTP是非獨立服務,需要依賴xinetd服務來啓動,啓動命令,systemctl start xinetd

4)HTTP+kickstart 配置
遠程系統安裝,客戶端需要下載系統所需要的軟件包,所以需要使用NFS或HTTPD把鏡像文件共享出來。
mkdir -p /var/www/html/centos7
mount /dev/cdrom /var/www/html/centos

配置kickstart,可以使用system-kickstart 系統軟件包來配置,ks.cfg配置文件如下:
cat >> /var/www/html/ks.cfg<< EOF
install
text
keyboard 'us'
rootpw www.jfedu.net
timezone Asia/Shanghai
url --url=http://192.168.10.128/centos7
reboot
lang zh_CN
firewall --disabled
network --bootproto=dhcp --device=ens33
auth --useshadow --passalgo=sha512
firstboot --disable
selinux disabled
bootloader --location=mbr
clearpart --all --initlabel
part /boot --fstype="ext4" --size=300
part / --fstype="ext4" --grow
part swap --fstype="swap" --size=512br/>%packages
@base
@core
%end
EOF
註解:執行動作爲安裝; 文本類型;鍵盤語言;登陸密碼;時區;下載地址;重啓;語言;關閉防火牆,指定啓動類型,網卡名稱;MBR引導分區;創建分區信息;安裝包基於base和core。

配置DHCP服務,DHCP服務配置文件代碼如下:
cat >> /etc/dhcp/dhcpd.conf<<EOF
ddns-update-style interim;
ignore client-updates;
next-server 192.168.10.128;
filename "pxelinux.0";
allow booting;
allow bootp;
subnet 192.168.10.0 netmask 255.255.255.0 {
#default gateway
option routers 192.168.10.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.10.180 192.168.10.200;
host ns {
hardware ethernet 00:1a:a0:2b:38:81;
fixed-address 192.168.10.128;}
}
EOF

    重啓各個服務,啓動新的客戶端驗證測試:
          systemclt  restart   httpd 
        systemctl restart   dhcpd 
        systemctl restart   xinetd 

   開啓新的虛擬機,BIOS以網卡啓動:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章