Estou usando o puppet para (teoricamente) obter o npcd para iniciar a instalação, no entanto, no Ubuntu, esse serviço vem instalado com a configuração padrão em / etc / default / npcd do RUN = "no":
$ cat /etc/default/npcd
# Default settings for the NPCD init script.
# Should NPCD be started? ("yes" to enable)
RUN="no"
# Additional options that are passed to the daemon.
DAEMON_OPTS="-d -f /etc/pnp4nagios/npcd.cfg"
Eu acho que esse bloco de configuração de fantoches cuidaria das coisas:
service { "npcd":
enable => true,
ensure => "running",
require => Package["pnp4nagios"],
}
Mas, infelizmente, isso não acontece, e antes de realmente reescrever o arquivo em / etc / default, não tenho certeza do que fazer. Existe uma maneira simples de ativar o serviço que não estou vendo?
Para constar, estou usando o Ubuntu 12.04.2 e a versão fantoche 3.1.0.
/etc/default/npcd
com umfile
recurso? Ofile
depende dopackage
, e oservice
depende dofile
. Estou sempre desconfiado de editar arquivos viased
ouaugeas
se posso evitá-lo.Respostas:
Atualizar o arquivo e reiniciar o serviço é a única maneira. Você pode enviar um novo arquivo por push e criar o serviço Exigir isso; Dessa forma, quando o conteúdo for atualizado, o serviço será iniciado corretamente.
Se você não deseja substituir completamente o arquivo, pode usar a ferramenta Augeas do Puppet para modificar apenas a linha única no arquivo padrão.
Existem alguns serviços no Debian e seus derivados que não iniciam automaticamente depois que o pacote é instalado, a menos que esteja ativado no / etc / default. Meio chato.
Edit: FYI, o script init está realmente lendo os valores desse arquivo (apenas fornecendo-o normalmente).
fonte
update-rc.d
ativar / desativar o serviço, não/etc/default
- não é uma maneira padrão de gerenciar serviços, por isso está fora de controle dos fantoches.No final das contas, verifiquei alguns dos daemons padrão nas minhas máquinas 12.04. Você precisa gerenciar o arquivo, não há como contorná-lo neste momento.
snmpd
collectd
fantoche
mdadm
haproxy
fonte
Eu acho que uma das maneiras viáveis de fazer isso é usar a ferramenta augeas com fantoches, por exemplo
consulte o manual para obter detalhes
fonte
Eu uso sed para modificar o arquivo. Augeas parece um exagero.
Idéia retirada daqui:
http://www.codelord.net/2010/12/19/using-puppet-to-automatically-configure-new-ec2-instances/
Então, no seu caso
fonte
Fazer isso com o
augeas
tipo Puppet é uma maneira (como sugerido por @DukeLion).Outra maneira é usar o
augeasproviders
módulo , com oshellvar
provedor:Isso é melhor porque o Augeas será usado de maneira limpa pelo provedor Ruby. Ele também gerencia citações e comentários automaticamente.
fonte