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

eww*_*ite 6 scripting linux kickstart centos configuration-management

我在一个由位于多个数据中心和办公地点的 CentOS 系统组成的环境中工作。我一直在使用带有可靠安装后脚本的合理启动,但希望简化和扩展该过程。我们有自己的 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
Run Code Online (Sandbox Code Playgroud)

Not*_*Now 5

我会推荐Foreman 而不是 cobbler,因为它将在未来取代 cobbler/Satellite。

工头要灵活得多,一旦您正确设置了它,您就可以将主机构建委托给其他人。

它还与 Puppet 深度集成,即您可以管理课程、证书、查看 Puppet 报告等。

  • @embobo 检查 pdf 演示文稿,特别是第 23 和 37 页。我认为补鞋匠的发展不会停止。@ewwhite :设置有点复杂,尤其是对于 Kickstart。您应该遵循网站上的教程并尝试使用邮件列表和 IRC 寻求帮助, (2认同)

jco*_*lie 3

看看 Cobbler - https://fedorahosted.org/cobbler/ - 我在 PXE 环境中使用它,但它应该适合你。