Como ativar o serviço instanciado systemd com o fantoche?

8

Eu tenho o seguinte serviço de marionetes:

service { "[email protected]": 
    provider => systemd,
    ensure => running,
    enable => true,
}

Quando tento aplicar essa configuração no meu cliente, ele gera o seguinte erro:

err: /Stage[main]//Node[puppetclient]/Service[[email protected]]/enable: change from false to true failed: Could not enable [email protected]:

O serviço está rodando bem e eu posso ter certeza que ele foi iniciado na inicialização do sistema, adicionando um link simbólico para getty.target.wants:

ln -s /lib/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]

Da fonte, eu poderia ir em frente e remover "enable = > true" da definição de serviço e incluir o symlink manualmente na configuração do fantoche, mas não deveria o fantoche cuidar disso? Estou fazendo algo terrivelmente errado?

    
por Clayton Louden 04.06.2012 / 18:53

1 resposta

6

O provedor systemd no Puppet hoje usa apenas dois comandos para o serviço enable state:

  • systemctl is-enabled <unit> , verificando código de retorno para o estado de ativação atual
  • systemctl enable/disable <unit> para alterá-lo

O comando enable gera um erro quando você habilita uma instância do getty @ service que ainda não existe:

$ sudo systemctl enable [email protected]
Failed to issue method call: No such file or directory

Isso está causando o erro mostrado no Puppet (embora stderr não pareça ser exibido).

Parece-me uma lacuna no systemd que você não consegue habilitar novas instâncias de um modelo. Já existe o BZ # 752774 no Fedora , mas os comentários sugerem que ele pode não ser adicionado tão cedo.

Talvez seja melhor você preencher uma solicitação de recurso contra o Puppet para adicionar suporte especificamente para ativar novas instâncias . Em sua solicitação de recurso, sugiro que você vincule a explicação de Lennart sobre as instâncias de unidade em seu histórico.

    
por 05.06.2012 / 01:28

Tags