我想用木偶来pipe理一个hadoop集群。 在机器上,我们有几个目录,必须创build和设置权限。
但我无法为定义的方法添加数组值。
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 。
编辑
错误消息是:
无法parsing环境生产:所有资源规范都需要名称; 在/etc/puppet/modules/hadoop/manifests/init.pp:52上预计'%s'
这是hadoop_slave的$dirs行
正如消息告诉你的,任何资源规范都需要一个名字。
在你的具体情况下,以下片段应该工作:
define hadoop_slave( $mem, $cpu, $dirs ) { hadoop_base { "${name}_hadoop_base": mem => $mem, cpu => $cpu, } hdfs_site { "${name}_hdfs_site": dirs => $dirs, } }