Como posso fornecer um arquivo de configuração padrão com o fantoche, mas permitir que o administrador do servidor o atualize

2

Eu gostaria de fornecer um arquivo de configuração de "exemplo padrão" para servidores de nó usando puppet (my.cnf por exemplo), mas eu quero permitir que o administrador do servidor o atualize o quanto ele quiser. (Basicamente, eu forneço "base" de vm para pesquisadores de TI e eles se adaptam por si mesmos)

Eu 'tentei com a função' file 'com puppet mas notei quando tento mudar ...

Existe uma solução?

    
por DJYod 03.12.2012 / 16:18

2 respostas

9

Use o parâmetro substituir para o arquivo .

file { '/path/to/file':
  ensure  => present,
  source  => 'puppet:///modules/module_name/file',
  replace => false,
}

Se este for um ambiente de produção, recomendo encorajar / exigir que os administradores façam alterações na configuração por meio do fantoche. Se este não for um ambiente de produção, você pode usar o fantoche para fazer a configuração (como com ' aplicar fantoche ') e não continue a executar o agente de marionetes depois disso.

    
por 04.12.2012 / 06:48
1

A resposta de Anton é provavelmente a melhor, mas este método também pode ser útil.

O Mysql suporta diretórios conf. Eu geralmente tenho uma única linha em my.cnf, incluindo /etc/mysql/conf.d/ e, em seguida, carrego configurações adicionais para preencher a funcionalidade. O Mysql usará a última instância de uma variável de configuração baseada na ordem de análise. Se você colocar seus padrões em /etc/mysql/conf.d/00_somefile.cnf, quaisquer arquivos adicionais devem substituí-los. Você pode criar um /etc/mysql/conf.d/local_changes.cnf para que fique claro onde colocá-lo.

class mysql::config {

  file { 'my.cnf':
    ensure  => present,
    path    => '/etc/mysql/my.cnf
    source  => 'puppet:///modules/mysql/my.cnf',
  }

  file { '/etc/mysql/conf.d':
    ensure  => directory,
  }

  file { 'general_mysql.cnf':
    ensure  => present,
    path    => '/etc/mysql/conf.d/00_general_mysql.cnf',
    content => template('mysql/general_mysql.cnf.erb'),
  }

Com as informações acima, você pode continuar a publicar as alterações por meio do arquivo de configuração controlado pelo Puppet e os pesquisadores podem substituí-las conforme necessário.

    
por 04.12.2012 / 18:44