Gerenciar biblioteca do Kickstart com o Puppet

4

Eu mantenho uma biblioteca de diferentes configurações de kickstart, principalmente para o CentOS 5 e 6. Recentemente, cheguei ao ponto de querer desduplicar o máximo possível dessas informações.

Estou ciente de algumas opções que podem gerar dinamicamente arquivos de kickstart. Não estou interessado neste ponto, a menos que eu realmente precise fazer esse caminho. Eu gostaria de criar meus arquivos do Kickstart usando um modelo na seguinte linha:

deploy1-centos5.erb

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

Meu esquema de nomenclatura de saída é "deploy1-centos5-x86_64".

Eu gostaria de poder criar vários arquivos de kickstart a partir de um determinado modelo, um para 32 bits, um 64, ppc, etc. Isso funcionaria perfeitamente se eu pudesse definir facilmente o valor de arch por cada vez que o modelo é chamado para criar um arquivo.

Qual é a maneira mais rápida de resolver isso?

    
por Tim Brigham 05.06.2012 / 21:58

1 resposta

4

O padrão mais simples é criar uma definição que exija o arquivo que você deseja com base em suas entradas.

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. 
  }

}

e depois aplicar como

kickstart::config { 'deploy1':
  arch => 'i386',
  os   => 'centos5',
}
    
por 05.06.2012 / 22:45

Tags