Puppet
使用 cron 資源的 Puppet 定義資源
在 puppet 中,我正在嘗試創建一個已定義的資源,其中包含一個 cron 資源。它適用於具有必須在特定日期執行的批處理作業的網站。
define website ( $sitename, $sitealias, $document_root, $cronjobs, $cron_weekday, $cron_minute, $cron_hour,
…一些其他程式碼…
cron { "${title}-batchjob": user => "apache", command => "cd ${document_root}/scripts && /usr/bin/php ./batch.php &> /dev/null", minute => "${cron_minute}", hour => "${cron_hour}", weekday => "${cron_weekday}", } )
問題是,如果我想在多天執行這個 cron 作業,比如周二和周四,我必須設置 $weekday=‘2,4’。
但要做到這一點,cron 資源將 weekday 參數定義為一個數組。
但是如何將數組作為變數傳遞給定義的資源?
如果我將這個精煉的資源聲明如下:
website { 'mysite': sitename => 'www.mysite.com', sitealias => 'mysite', document_root => '/var/www/mysite.com', cronjobs => true, cron_hour => '2', cron_minute => '0', cron_weekday => '2,4', }
我收到一條錯誤消息,說 24 不是有效的工作日。
看來我必須為 cron_weekday 使用一個數組,但我不知道如何在定義的資源中將變數作為數組傳遞。
這裡的問題是:
weekday => "${cron_weekday}",
您基本上是將數組轉換為字元串。
將其更改為:
weekday => $cron_weekday,
然後像這樣呼叫傳遞參數:
cron_weekday => [2, 4],
當然也對其他變數做同樣的事情。
括號是你的朋友。
像這樣添加數組:
cron_weekday => [2, 4],
您可以在cron 文件存檔中找到更多資訊。