Linux

優化 RHEL/CentOS kickstart 工作流程的技巧

  • May 27, 2011

我在一個由位於多個數據中心和辦公地點的 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,但認為PuppetBcfg2現在可能是更好的選擇)。我是否削減了安裝後腳本並將這些功能移動到 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 報告等。

引用自:https://serverfault.com/questions/271184