我在一个由位于多个数据中心和办公地点的 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,但认为Puppet或Bcfg2现在可能是更好的选择)。我是否削减了安装后脚本并将这些功能移到 CFEngine 中?不过,这可能是一个不同的问题。
这是我一直在使用的 kickstart 文件的一个示例:
install
text
url --url http://yum.abc.com/5.6/os/x86_64/
#nfs …Run Code Online (Sandbox Code Playgroud)