I want to use puppet to manage a hadoop cluster. On the machines we have several directories which must be created and set permissions.
But i'm unable to add array values for defined methods.
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
is similar to hdfs_site
.
EDIT
The error message was:
Could not parse for environment production: All resource specifications require names; expected '%s' at /etc/puppet/modules/hadoop/manifests/init.pp:52
which is the $dirs
line in hadoop_slave
site.pp
but serverfault threw an exception :(