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

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

我的工作环境由位于多个数据中心和办公地点的 CentOS 系统组成。我一直在使用合理的 kickstart 和可靠的安装后脚本,但想简化和扩展该过程。我们有自己的 yum repo,我可以控制所使用的硬件范围(通常是HP ProLiant 硬件或 VMWare)假设我每周构建或重新部署一台服务器。硬件准备所需步骤,我开始设置操作系统。我现在遇到的问题是:

1)。将系统引导到网络安装程序的好方法。我一直在使用 CentOS 发行版中提供的 10mb boot.iso/netinstall.iso。我通过 VMWare vCenter(用于虚拟机)或 HP ILO(通常通过 SSH,指向 ISO 的 URL)安装它以启动安装。在大多数情况下,我无法使用 PXE,因为数据中心位置没有可用的 DHCP。例如,有没有一种干净的方法可以将 boot.iso 放到 USB 密钥上?

boot:2). 有时我需要为 kickstart 设置静态 IP。除了在安装程序提示符下的命令行中输入该信息外,还有其他更好的方法吗?

3)。自定义 kickstart 的好方法。现在,我已经拥有了大部分所需内容,但有时需要更改分区方案以适应不同的 RAID 设置(例如两个 SmartArray 控制器)。现在,我基本上是为每个系统(或系统组)设置创建一个单独的 kickstart 文件。我最终得到一个充满旧 *.cfg 文件的目录。我知道有一种更优雅的方法可以做到这一点。也许是 PHP?

4) 安装方法帮助。照原样,从提示到完成的完整构建需要 5-10 分钟。我注意到安装方法很重要,具体取决于位置。HTTP 在 yum 服务器本地运行良好,但在我们与其他站点的高带宽低延迟连接上效果不佳。NFS 在这些情况下效果更好。我很感激在启动过程之前用于预加载设置或系统参数的任何巧妙技巧。

5)。安装后脚本运行良好。它会提取其他软件包、设置一些初始设置、缩减服务列表并填充一些用户/密码/SSH 密钥。我希望通过适当的配置管理来运行此环境(我习惯于CF引擎,但认为木偶或者乙型肝炎病毒可能是现在更好的选择)。我是否应该缩减安装后脚本并将这些功能移至 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

答案1

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

答案2

我会推荐领班因为它将来会取代 cobbler/Satellite。

工头的灵活性要高得多,一旦你正确设置,你可以将主机构建工作委托给其他人。

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

相关内容