Como posso gerenciar o puppet.conf com o Puppet?


11

Eu uso o fantoche para gerenciar servidores linux e vários serviços. Funciona bem, exceto pelo serviço de marionetes em si.

Minha aula de marionetes é assim:

class puppet {
  file { "/etc/puppet/puppet.conf":
    owner  => 0, group  => 0, mode => 0644,
    content => template("${module_name}/puppet.conf.erb"),
  }

  service { "puppet":
    name       => "puppet",
    ensure     => running,
    enable     => true, hasstatus  => true, hasrestart => true,
    require    => File["/etc/puppet/puppet/conf"]
    subscribe  => File["/etc/puppet/puppet/conf"]
  }
}

}

Quando uma alteração é aplicada no /etc/puppet/puppet.conf, o fantoche percebe que precisa reiniciar o serviço de fantoches e, portanto, trava:

Mar 30 17:08:23 XXXX puppet-agent[20172]: (/Stage[main]/Puppet/File[/etc/puppet/puppet.conf]/content) content changed '{md5}eeaf5dfc7d88c8d9c85e6a8cc714d702' to '{md5}ef6ff0e423f4125e24b689980df9f71d'
Mar 30 17:08:23 XXXX puppet-agent[20172]: Caught TERM; calling stop

Você sabia como eu poderia atualizar o puppet.conf corretamente com o puppet?

Respostas:


10

O daemon puppet notará automaticamente alterações no arquivo puppet.conf sem precisar ser reiniciado. Basta remover o subscribe => File["/etc/puppet/puppet.conf"]de service { "puppet" ... }e tudo continuará a funcionar.

O fantoche também não pode ensure => runningpor si só. No entanto, usar algo como o Reinício Mutal com fantoche, garantindo que o cron esteja em execução, e um cronjob, garantindo que o fantoche esteja em execução, funcionará.


Vou verificar se funciona na segunda-feira, mas me parece muito bom. Obrigado pelo ponteiro sobre o reinício mútuo.
Coren 31/03

1

Uma solução é não executar o fantoche como um daemon, mas invocá-lo a partir do cron. Isso é algo que muitas pessoas preferem porque, para eles, o daemon consome muita memória.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.