Configuration
有沒有辦法在 puppet 模組中使用數組(不在模板中)?
我想用 puppet 來管理一個 hadoop 集群。在機器上,我們有幾個必須創建並設置權限的目錄。
但我無法為定義的方法添加數組值。
define hdfs_site( $dirs ) { file { $dirs: ensure => directory, owner => "hadoop", group => "hadoop", mode => 755; } file { "/opt/hadoop/conf/hdfs-site.xml": content => template("hdfs-site.xml.erb"), owner => "root", group => "root", mode => 644; } } define hadoop_slave( $mem, $cpu, $dirs ) { hadoop_base { mem => $mem, cpu => $cpu, } hdfs_site { dirs => $dirs, } }
hadoop_base
類似於hdfs_site
。編輯
錯誤消息是:
無法解析環境生產:所有資源規範都需要名稱;/etc/puppet/modules/hadoop/manifests/init.pp:52 中的預期“%s”
這是
$dirs
線hadoop_slave
正如消息告訴您的那樣,任何資源規範都需要一個名稱。
在您的特定情況下,以下程式碼段應該可以工作:
define hadoop_slave( $mem, $cpu, $dirs ) { hadoop_base { "${name}_hadoop_base": mem => $mem, cpu => $cpu, } hdfs_site { "${name}_hdfs_site": dirs => $dirs, } }