Como habilitar o serviço instanciado pelo systemd com o fantoche?


9

Eu tenho o seguinte serviço de marionetes:

service { "getty@ttyUSB0.service": 
    provider => systemd,
    ensure => running,
    enable => true,
}

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

err: /Stage[mainξ//Node[puppetclient.la/Service[getty@ttyUSB0.service{/enable: mudança de falsa para verdadeira falhou: Não foi possível ativar getty@ttyUSB0.service:

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

ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttyUSB0.service

De origem, eu poderia ir em frente e remover "enable => true" da definição de serviço e incluir um link simbólico manualmente na configuração do fantoche, mas o fantoche não deve cuidar disso? Estou fazendo algo terrivelmente errado?

Respostas:


6

O provedor systemd no Puppet hoje usa apenas dois comandos para o enableestado do serviço :

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

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

$ sudo systemctl enable getty@ttyUSB0.service
Failed to issue method call: No such file or directory

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

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

É melhor registrar uma solicitação de recurso no Puppet para adicionar suporte especificamente para ativar novas instâncias. Em sua solicitação de recurso, eu sugeriria um link para a explicação de Lennart de instâncias de unidade para o segundo plano.

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.