Corrigindo serviços que foram desabilitados em / etc / default / com o fantoche?

13

Estou usando o fantoche 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 de 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, na verdade, não reescrevemos o arquivo em / etc / default, não sei o que fazer. Existe uma maneira simples de ativar o serviço que não estou vendo?

Para o registro, estou usando o Ubuntu 12.04.2 e a versão 3.1.0 do fantoche.

    
por Matt Simmons 25.07.2013 / 04:22

5 respostas

12

A atualização desse arquivo e a reinicialização do serviço são o único caminho. Você pode enviar um novo arquivo e, em seguida, fazer o serviço Exigir que; Dessa forma, quando o conteúdo for atualizado, o serviço será iniciado corretamente.

Se você não quiser substituir totalmente o arquivo, poderá usar a ferramenta Marionetes Augeas para modificar apenas a única linha do arquivo padrão.

Existem alguns serviços no Debian e seus derivados que não são iniciados automaticamente depois que o pacote é instalado, a menos que esteja ativado em / etc / default. Meio chato.

Editar: FYI, o script de inicialização, na verdade, está lendo os valores desse arquivo (apenas pesquisando normalmente).

    
por 25.07.2013 / 04:35
8

Para o inferno eu verifiquei alguns dos daemons padrão em minhas 12.04 máquinas. Você tem que gerenciar o arquivo, não há maneira de contorná-lo neste momento.

snmpd

# snmpd control (yes means start daemon).
SNMPDRUN=yes

collectd

# 0: start collectd on boot, 1: do not start collectd on boot
# default: 0
DISABLE=0

fantoche

# Start puppet on boot?
START=yes

mdadm

# START_DAEMON:
#   should mdadm start the MD monitoring daemon during boot?
START_DAEMON=true

haproxy

# Set ENABLED to 1 if you want the init script to start haproxy.
ENABLED=1
    
por 25.07.2013 / 05:12
6

Acho que uma das maneiras possíveis de fazer isso é usar o augeas tool with puppet, por exemplo

augeas { "npcd_default":
  changes => [
    "set /files/etc/default/npcd/Run yes",
  ],
}

consulte o manual para obter detalhes

    
por 25.07.2013 / 09:45
0

Eu uso o sed para modificar o arquivo. Augeas parece um exagero.

sed -i /etc/default/puppet -e 's/START=no/START=yes/'

Idéia tirada daqui:

link

Então, no seu caso

sed -i /etc/default/npcd -e 's/RUN="no"/RUN="yes"/'
    
por 25.07.2013 / 09:57
0

Fazer isso com o tipo augeas no Puppet é unidirecional (como sugerido por @DukeLion).

Outra maneira é usar o % móduloaugeasproviders , com o provedor shellvar :

shellvar { 'npcd_default':
  ensure   => present,
  target   => '/etc/default/npcd',
  variable => 'RUN',
  value    => 'yes',
  comment  => 'We want npcd to run',
}

Isso é melhor porque o Augeas será usado de forma limpa pelo provedor Ruby. Ele também gerenciará citações e comentários automaticamente.

    
por 22.09.2013 / 21:23