使用 Puppet 管理 Kickstart 库

使用 Puppet 管理 Kickstart 库

我维护着一个包含不同 kickstart 配置的库,主要针对 CentOS 5 和 6。最近我想尽可能多地删除这些信息中的重复项。

我知道有几个选项可以动态生成 kickstart 文件。目前不感兴趣,除非我真的需要这样做。我想使用以下模板创建我的 Kickstart 文件:

部署1-centos5.erb

....
install=http://.../$arch/...
repo=http://.../$arch/...
....

我的输出命名模式是“deploy1-centos5-x86_64”。

我希望能够从给定的模板创建多个 kickstart 文件,一个用于 32 位,一个用于 64 位,一个用于 ppc 等。这将可行完美如果我可以轻松设置每次调用模板时都会创建一个文件。

解决这个问题最现成的方法是什么?

答案1

最简单的模式是创建一个定义,它将根据您的输入输出您想要的文件。

define kickstart::config ($os, $arch) {

# $name is a reserved variable, it works based on the name of this define
# kickstart::configs { "this_becomes_name": }

  file { "kickstart/conf.d/${name}-${os}-${arch}":
    ensure  => present,
    content => template("kickstart/conf.d/${name}.erb"),
    #content => template("kickstart/conf.d/${name}-${os}.erb"),
    #content => template("kickstart/conf.d/${name}-${os}-${arch}.erb"),
    # or whatever, but this template file will need to exists. 
  }

}

然后应用

kickstart::config { 'deploy1':
  arch => 'i386',
  os   => 'centos5',
}

相关内容