Puppet

Puppet 和 systemctl 的麻煩

  • August 19, 2016

我在使用 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 個參數…

謝謝

此行中的引號可能會導致問題:

service {"$ntp_services":

使用""包含變數將創建一個字元串,其中擴展了變數[ntpd ntpdate]這可能就是為什麼 Puppet 使用名稱(即數組)報告單個服務而不是兩個不同的服務的原因。

將其更改為:

service { $ntp_services:

這應該傳遞原始數組,為每個項目生成一個資源。

引用自:https://serverfault.com/questions/797725