我正在一个由位于多个数据中心和办公地点的CentOS系统组成的环境中工作。 我一直在使用一个合理的kickstart和一个可靠的post-install脚本,但是想简化和扩展这个过程。 我们有自己的yum repo,我可以控制硬件的使用范围(通常是HP ProLiant硬件或VMWare)。假设我每周都构build或重新部署一台服务器。 按照硬件准备所需的步骤 ,我开始安装操作系统。 我现在的问题是:
1)。 将系统引导到networking安装程序的一种很好的方法。 我一直在使用CentOS发行版中的10mb boot.iso / netinstall.iso。 我通过VMWare vCenter(对于VM)或HP ILO(通常通过SSH,指向ISO的URL)来启动安装。 在大多数情况下,我无法使用PXE,因为数据中心位置没有可用的DHCP。 有没有一个干净的方法来获得boot.iso到USB密钥,例如?
2)。 有时我需要为kickstart设置一个静态IP。 有没有更好的方法来input信息,而不是在安装程序提示符下的boot:命令行上input信息?
3)。 一个定制kickstart的好方法。 现在,我拥有大部分我需要的function,但有时需要更改分区scheme以适应不同的RAID设置(例如两个SmartArray控制器)。 现在,我基本上为每个系统(或一组系统)设置创build一个单独的kickstart文件。 我结束了一个完整的旧* .cfg文件的目录。 我知道有一个更优雅的方式来做到这一点。 PHP也许?
4)。 帮助安装方法。 按原样,从提示到完成的完整构build需要5-10分钟。 我注意到,安装方法很重要,取决于位置。 HTTP在yum服务器本地运行良好,但是在我们与其他站点的高带宽低延迟连接上却很差。 NFS在这些情况下效果更好。 我将不胜感激在kickstart过程之前用于预先设置或系统参数的任何漂亮的技巧。
5)。 安装后脚本运行良好。 它会提取额外的软件包,设置一些初始设置,修剪服务列表并填充一些用户/密码/ SSH密钥。 我想通过适当的configurationpipe理来运行这个环境(我习惯了CFEngine ,但是现在认为Puppet或者Bcfg2可能是更好的select)。 我是否删除安装后脚本并将这些function移到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环境中使用它,但它应该为你工作。
我会推荐工匠,而不是鞋匠,因为它将在未来取代皮匠/卫星。
工头更加灵活,一旦你正确设置好了,就可以把主人build筑委托给他人。
它也与Puppet深度整合,即你可以pipe理class级,证书,查看木偶报告等。