Назад | Перейти на главную страницу

Управление библиотекой кикстарта с помощью Puppet

Я поддерживаю библиотеку различных конфигураций кикстарта, в основном для CentOS 5 и 6. Недавно дошло до того, что я хочу дедуплицировать как можно больше этой информации.

Мне известно о нескольких вариантах, которые могут динамически создавать файлы кикстарта. В данный момент мне не интересно, если мне действительно не нужно делать этот маршрут. Я хотел бы создать свои файлы кикстарта, используя шаблон в следующей строке:

deploy1-centos5.erb

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

Моя схема именования выходных данных - «deploy1-centos5-x86_64».

Я хотел бы иметь возможность создать несколько файлов кикстарта из заданного шаблона, один для 32-битного, один для 64-битного, ppc и т. Д. Это сработает. в совершенстве если бы я мог легко установить значение арка каждый раз, когда вызывается шаблон для создания файла.

Каков наиболее готовый способ решить эту проблему?

Самый простой шаблон - создать определение, которое будет выдавать нужный файл на основе ваших входных данных.

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',
}