Comment activer le service instancié systemd avec marionnette?

9

J'ai le service de marionnettes suivant:

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

Lorsque j'essaie d'appliquer cette configuration sur mon client, il génère l'erreur suivante:

err: /Stage}principalmain////Node}puppetclient[/Service[[email protected] 4,0/enable: le changement de faux à vrai a échoué: impossible d'activer [email protected]:

Le service fonctionne bien et je peux m'assurer qu'il a démarré au démarrage du système en ajoutant un lien symbolique vers getty.target.wants:

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

De source, je pourrais aller de l'avant et supprimer "enable => true" de la définition du service et inclure manuellement le lien symbolique dans la configuration de la marionnette, mais la marionnette ne devrait-elle pas s'en occuper? Suis-je en train de faire quelque chose de terriblement mal?

Clayton Louden
la source

Réponses:

6

Le fournisseur systemd de Puppet n'utilise aujourd'hui que deux commandes pour l' enableétat du service :

  • systemctl is-enabled <unit>, vérification du code retour pour l'état d'activation actuel
  • systemctl enable/disable <unit> pour le changer

La commande enable génère une erreur lorsque vous activez une instance du service getty @ qui n'existe pas déjà:

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

Cela provoque alors l'erreur affichée dans Puppet (bien que stderr ne semble pas être affiché).

Cela me semble être une lacune dans systemd que vous ne pouvez pas activer de nouvelles instances d'un modèle. Il y a déjà BZ # 752774 dans Fedora , mais les commentaires suggèrent qu'il pourrait ne pas être ajouté de sitôt.

Vous feriez mieux de déposer une demande de fonctionnalité contre Puppet pour ajouter une prise en charge spécifique pour l'activation de nouvelles instances. Dans votre demande de fonctionnalité, je suggère de créer un lien vers l'explication de Lennart sur les instances d'unité pour le fond.

Dominic Cleal
la source