class zookeeper { exec { "download_zookeeper": command => "wget -O /tmp/zookeeper-3.4.9.tar.gz http://www-us.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz", timeout => 0, path => $path, unless => "ls ${install_dir} | grep zookeeper-3.4.9", require => Package["oracle-java8-installer"] } exec { "unpack_zookeeper": command => "tar -zxf /tmp/zookeeper-3.4.9.tar.gz -C ${install_dir}", path => $path, creates => "${zookeeper_home}-3.4.9", require => Exec["download_zookeeper"] } exec { "rename_zookeeper": command => "ln -s ${install_dir}/zookeeper-3.4.9 ${install_dir}/zookeeper", path => $path, creates => "${zookeeper_home}", require => Exec["unpack_zookeeper"] } exec { 'chown_zookeeper': command => "/bin/chown -R ${user}:${group} ${zookeeper_home}-3.4.9", path => '/bin', user => 'root', require => Exec["rename_zookeeper"] } file { "${zookeeper_home}/conf/zoo.cfg": content => template('zookeeper/zoo.cfg'), mode => 644, owner => $user, group => $group, require => Exec["chown_zookeeper"] } file { '/var/lib/zookeeper': ensure => 'directory', owner => $user, group => $group, mode => 755, require => Exec["chown_zookeeper"] } # file { # [ "${hadoop_home}/hadoop_store", # "${hadoop_home}/hadoop_store/hdfs", # "${hadoop_home}/hadoop_store/hdfs/namenode", # "${hadoop_home}/hadoop_store/hdfs/datanode"]: # ensure => 'directory', # owner => "${user}", # group => "${group}", # mode => 755, # require => Exec["chown_hadoop"] # } file { "/home/${user}/.bashrc-setup-zookeeper": content => template('zookeeper/setup-zookeeper.bash'), mode => 644, owner => $user, group => $group, require => [ Exec["unpack_zookeeper"], File["/home/${user}"] ] } file_line { "setup_zookeeper_home": ensure => present, path => "/home/${user}/.bashrc", line => ". .bashrc-setup-zookeeper", require => [ Exec["unpack_zookeeper"], File["/home/${user}"] ] } file { "/home/${user}/solr-start-all.sh": content => template('zookeeper/solr-start-all.sh'), ensure => present, mode => 755, owner => $user, group => $group, require => File["/home/${user}"] } }