我有以下木偶服务:
service { "getty@ttyUSB0.service":
provider => systemd,
ensure => running,
enable => true,
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在我的客户端上应用此配置时,它会引发以下错误:
错误:/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”,并在 puppet 配置中手动包含符号链接,但 puppet 不应该处理这个吗?我做错了什么吗?
现在 Puppet 中的 systemd provider 只对服务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
Run Code Online (Sandbox Code Playgroud)
这会导致 Puppet 中显示的错误(尽管 stderr 似乎没有显示)。
在我看来,您无法启用模板的新实例,这就像 systemd 中的一个空白。Fedora 中已经有BZ#752774,但评论表明它可能不会很快添加。
您最好向 Puppet提交功能请求以添加专门用于启用新实例的支持。在您的功能请求中,我建议链接到Lennart对背景单元实例的解释。
归档时间: |
|
查看次数: |
15273 次 |
最近记录: |