web-dev-qa-db-ja.com

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"

Service.pp:

class ntp::service ($ntp_services) {
    service {"$ntp_services":
        hasrestart  => false,
        hasstatus   => true,
        ensure      => running,
        enable      => true,
    }
}

これはcentos6で非常にうまく機能しており、以前はcentos7で機能していました。

このようにパラメータを定義すると機能します:

ntp::service::ntp_services: "ntpd"

ただし、1つのサービスに対して1つのパラメーターを定義する必要があります...

ありがとう

2
Skullone

この行の引用符が問題を引き起こしている可能性があります。

service {"$ntp_services":

変数を含む""を使用すると、変数が展開された文字列が作成されますinside it。これがおそらく、Puppetが2つの異なるサービスではなく、[ntpd ntpdate]という名前の単一のサービス(つまり、配列)を報告している理由です。

次のように変更します。

service { $ntp_services:

これにより、元の配列が渡され、アイテムごとに1つのリソースが生成されます。

4
Dominic Cleal