優化 RHEL/CentOS kickstart 工作流程的技巧
我在一個由位於多個數據中心和辦公地點的 CentOS 系統組成的環境中工作。我一直在使用合理的 kickstart 和可靠的安裝後腳本,但希望簡化和擴展該過程。我們有自己的 yum 儲存庫,我可以控制使用的硬體範圍(通常是HP ProLiant 硬體或 VMWare) 假設我每週建構或重新部署一台伺服器。按照硬體準備所需的步驟,我開始作業系統設置。我現在遇到的問題是:
1)。一種將系統引導到網路安裝程序的好方法。我一直在使用 CentOS 發行版中可用的 10mb boot.iso/netinstall.iso。我通過 VMWare vCenter(用於 VM)或 HP ILO(通常通過 SSH,指向 ISO 的 URL)安裝它以啟動安裝。在大多數情況下,我無法使用 PXE,因為數據中心位置沒有可用的 DHCP。例如,有沒有一種干淨的方法可以將 boot.iso 放到 USB 密鑰上?
2)。有時我需要為 kickstart 設置一個靜態 IP。
boot:
除了在安裝程序提示符下的命令行中輸入資訊之外,還有更好的方法來輸入該資訊嗎?3)。自定義 kickstart 的好方法。現在,我有大部分我需要的東西,但有時需要更改分區方案以適應不同的 RAID 設置(例如兩個 SmartArray 控制器)。現在,我基本上是為每個系統(或系統組)設置創建一個單獨的 kickstart 文件。我最終得到一個充滿舊 *.cfg 文件的目錄。我知道有一種更優雅的方法可以做到這一點。PHP 也許?
4)。幫助安裝方法。照原樣,從提示到完成的完整建構需要 5-10 分鐘。我注意到安裝方法很重要,具體取決於位置。HTTP 在 yum 伺服器本地執行良好,但在我們與其他站點的高頻寬低延遲連接上效果不佳。NFS 在這些情況下工作得更好。我會很感激任何用於在 kickstart 過程之前預載入設置或系統參數的巧妙技巧。
5)。安裝後腳本執行良好。它提取額外的包,設置一些初始設置,修剪服務列表並填充一些使用者/密碼/SSH 密鑰。我希望通過適當的配置管理來執行這個環境(我習慣於CFEngine,但認為Puppet或Bcfg2現在可能是更好的選擇)。我是否削減了安裝後腳本並將這些功能移動到 CFEngine 中?不過,這可能是一個不同的問題。
這是我一直在使用的 kickstart 文件範例:
install text url --url http://yum.abc.com/5.6/os/x86_64/ #nfs --server=yum.abc.com --dir=/yum/5/os/x86_64 lang en_US.UTF-8 langsupport --default=en_US.UTF-8 en_US.UTF-8 keyboard us network --device eth0 --bootproto dhcp rootpw --iscrypted $encryptedpassword firewall --disabled selinux --disabled authconfig --enableshadow --enablemd5 timezone --utc America/Chicago bootloader --location=mbr clearpart --all --initlabel part /boot --fstype ext3 --size=200 part /usr --fstype ext3 --size=8192 --asprimary part / --fstype ext3 --size=12288 --asprimary part /var --fstype ext3 --size=4096 part swap --size=8192 part /tmp --fstype ext3 --size=2048 #part /opt --fstype ext3 --size=100 --grow #part /scratch --fstype ext3 --size=61440 %packages @ admin-tools @ editors @ system-tools @ network-server @ mail-server @ server-cfg @ development-tools yum-fastestmirror rpm-devel e2fsprogs grub kernel-devel net-snmp-utils -subversion -xdelta %post exec < /dev/tty3 > /dev/tty3 chvt 3 echo echo "################################" echo "# Running Post Configuration #" echo "################################" ( /usr/bin/wget http://ks.abc.com/post/post-install-abc.sh -O /root/post-install-abc.sh /bin/chmod 755 /root/post-install-abc.sh /root/post-install-abc.sh ) 2>&1 | /usr/bin/tee /var/log/post-install.log chvt 1
看看 Cobbler - https://fedorahosted.org/cobbler/ - 我在 PXE 環境中使用它,但它應該適合你。
我會推薦工頭而不是鞋匠,因為它將來取代鞋匠/衛星。
工頭要靈活得多,一旦您正確設置它,您就可以將主機建設委託給其他人。
它還與 Puppet 深度集成,即您可以管理課程、證書、查看 puppet 報告等。