Puppet 和 systemctl 问题

Puppet 和 systemctl 问题

我在使用 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:

并且这应该传递原始数组,每个项目生成一个资源。

相关内容