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


9

我有以下木偶服务:

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

当我尝试在客户端上应用此配置时,它将引发以下错误:

错误:/Stage[main]//Node[puppetclient]/Service[getty@ttyUSB0.service]/enable:从false更改为true失败:无法启用getty@ttyUSB0.service:

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

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

从源头上讲,我可以继续从服务定义中删除“ enable => true”,并在p配置中手动包括一个符号链接,但是p不应该照顾这个吗?我做错什么了吗?

Answers:


6

今天,Puppet中的systemd提供程序仅使用两个命令来表示服务enable状态:

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

当您启用尚不存在的getty @服务实例时,enable命令将引发错误:

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

然后,这会导致Puppet中显示错误(尽管似乎未显示stderr)。

在我看来,这就像systemd中的空白,您无法启用模板的新实例。Fedora中已经有BZ#752774,但是注释表明它可能不会很快添加。

您最好向Puppet 提出功能请求以添加专门用于启用新实例的支持。在您的功能请求中,建议您链接到Lennart对背景单元实例的说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.