我在使用 puppet 和 systemctl 时遇到了一些问题。我曾经为“服务”加载过几个参数,但在 centos7 上它不再起作用了。
这是我的错误:
Error: Could not enable [ntpd ntpdate]:
Error: /Stage[main]/Ntp::Service/Service[[ntpd ntpdate]]/enable: change from false to true failed: Could not enable [ntpd ntpdate]:
这是我的代码:
希拉:
ntp::service::ntp_services:
- "ntpd"
- "ntpdate"
服务.pp:
class ntp::service ($ntp_services) {
service {"$ntp_services":
hasrestart => false,
hasstatus => true,
ensure => running,
enable => true,
}
}
它在 centos 6 上运行得很好,并且以前在 centos 7 上运行得很好。
如果我像这样定义参数它就会起作用:
ntp::service::ntp_services: "ntpd"
但我必须为 1 项服务定义 1 个参数...
谢谢
答案1
此行中的引号很可能是导致问题的原因:
service {"$ntp_services":
使用""
包含变量将创建一个带有扩展变量的字符串里面这可能就是为什么 Puppet 报告的是具有名称的单个服务[ntpd ntpdate]
(即数组)而不是两个不同的服务。
更改为:
service { $ntp_services:
并且这应该传递原始数组,每个项目生成一个资源。