Ste*_*ski 5 redhat kickstart provisioning
我想启动几十个 RHEL6/SL6 服务器。但是,其中一些服务器是不同的,我不想为每类服务器创建一个新的 ks.cfg 文件。
有什么方法可以从模板动态生成 Kickstart 文件?
例如,如果我将这样的行附加到内核:
APPEND ks=http://192.168.1.100/cgi-bin/ks.cgi ip=dhcp
Run Code Online (Sandbox Code Playgroud)
然后脚本 ks.cgi 可以确定这是什么主机(通过 MAC 地址),并打印出适合该主机的 Kickstart 选项。我可以通过将参数传递给脚本来选择性地覆盖一些选项,如下所示:
APPEND ks=http://192.168.1.100/cgi-bin/ks.cgi?NODETYPE=production&IP=192.168.2.80
Run Code Online (Sandbox Code Playgroud)
在我们启动服务器之后,我们在这个系统上激活 Cfengine/Puppet 并使用我们最喜欢的配置管理产品来管理系统。
我们正在试验xCAT,但事实证明它太麻烦了。我已经研究过Cobbler,但我不确定它是否这样做。
更新:
在 O'Reilly 的书:Managing RPM-Based Systems with Kickstart and Yum,第 3 章自定义您的 Kickstart 安装 > 动态 ks.cfg 中讨论了您自己的解决方案,这与此线程中的一些评论相呼应:
实现这样的工具超出了这个 Short Cut 的范围,但我可以完成高级设计。任何此类解决方案都会将数据存储(发生变化的事物)与模板解决方案(不变的事物)混合在一起。数据存储将保存每台机器的数据,例如 IP 地址和主机名。您还需要一个唯一标识符,可能是主机名,以便您可以获取给定机器的数据。数据存储可以是平面文件、XML 数据或关系数据库,例如 PostgreSQL 或 MySQL。
反过来,为了调用系统,您将机器的唯一标识符作为 URL 参数传递。例如:
启动:linux ks= http://your.kickstart.server/gen_config?host-server25
在此示例中,CGI(或 servlet,或其他)为机器 server25 生成 ks.cfg。
但是 ks.cgi 的代码在哪里?
归档时间: |
|
查看次数: |
4024 次 |
最近记录: |