fantoche: força a reinicialização do serviço após o arquivo de configuração ser modificado

fantoche: força a reinicialização do serviço após o arquivo de configuração ser modificado

como posso garantir que, se uma nova versão do arquivo de configuração for baixada via fantoche do repositório mestre para um dos servidores gerenciados, o serviço relevante será reiniciado.

cenário típico - digamos que haja uma nova configuração do munin ou do apache. o cliente fantoche descobre, sobrescreve os arquivos locais... e... - como garantir que o serviço seja reiniciado/recarregado?

muito obrigado!

Responder1

Uma alternativa para notificar é se inscrever:

file { "/etc/sshd_config":
    source => "....",
}

service { sshd:
    ensure => running,
    subscribe => File["/etc/sshd_config"],
}

A diferença é que o relacionamento é descrito do outro lado. Por exemplo, você pode fazer o apache assinar /etc/apache/httpd.conf, mas faria um arquivo vhost notificar o apache, já que sua classe apache não saberá sobre todos os vhost que você possui.

Uma situação dual semelhante se aplica a require e before. É apenas uma questão de saber o que faz mais sentido na situação específica.

Como Chad mencionou, se você encontrar o Puppet constantemente tentando iniciar seu serviço, será necessário adicionar um parâmetro padrão, que é um regex a ser aplicado à lista de processos. Por padrão, o fantoche irá parar e começar a reiniciar um serviço. Se você adicionar "hasrestart => true", ele usará o comando especificado no parâmetro "restart" para reiniciar o serviço.

Responder2

parece que encontrei algo:

file { "/etc/sshd_config":
    source => "....",
    notify => Service[sshd]
}

service { sshd:
    ensure => running
}

veremos como isso funcionará. de qualquer forma, seus pensamentos sobre o assunto são bem-vindos.

Responder3

(Eu sei que esta é uma pergunta muito antiga, mas pensei em investir meus dois centavos em uma maneira (na minha opinião) muito mais fácil de fazer isso)

Sinta-se à vontade para usar a notação de seta também:

file { "/etc/sshd_config":
  source => "....",
} ~>
service { sshd:
  ensure => running
}

ou

File['/etc/sshd_config'] ~> Service['sshd']

Responder4

Existem várias notações equivalentes:

Notificar:

file { '/etc/sshd_config':
    notify => Service[sshd],
}

service { sshd:
    ensure => running
}

Se inscrever:

file { '/etc/sshd_config':
   ...
}

service { sshd:
    ensure => running,
    subscribe => File['/etc/sshd_config'],
}

Notação de seta:

File['/etc/sshd_config'] ~> Service['sshd']

Declarações de encadeamento

file { '/etc/sshd_config':
   ...
}
~> service { sshd:
    ensure => running,
}

Se você quiser acionar reloadem vez de restart, ajuste a declaração de serviço:

service { sshd:
    ensure => running,
    restart => 'pkill -HUP sshd', # if service support such reload
}

informação relacionada