如何使用puppet启用systemd实例化服务?

我有以下傀儡服务:

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

当我尝试在我的客户端上应用此configuration时,会引发以下错误:

err:/Stage[main]//Node[puppetclient]/Service[[email protected]]/enable:从false更改为true失败:无法启用[email protected]

该服务运行良好,我可以确保它通过添加一个符号链接到getty.target.wants启动系统启动:

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

在源文件中,我可以继续,从服务定义中删除“enable => true”,并在puppetconfiguration中手动添加符号链接,但是不应该由木偶来处理? 我在做一些非常错误的事情吗?

Puppet中的systemd提供者今天只使用两个命令来enable服务:

  • systemctl is-enabled <unit> ,检查当前启用状态的返回码
  • systemctl enable/disable <unit>来改变它

启用尚不存在的getty @ service实例时,enable命令会引发错误:

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

这会导致Puppet中显示的错误(尽pipestderr似乎没有显示)。

它看起来像我systemd中的差距,你不能启用模板的新实例。 Fedora中已经有了BZ#752774 ,但是评论表明它可能不会很快被添加。

您可能会更好地提交针对Puppet的function请求 ,以添加专门用于启用新实例的支持。 在你的function请求,我build议链接到Lennart的单位背景的解释 。