class solr { exec { "download_solr": command => "wget -O /tmp/solr-6.2.1.tar.gz http://www-us.apache.org/dist/lucene/solr/6.2.1/solr-6.2.1.tgz", timeout => 0, path => $path, unless => "ls ${install_dir} | grep solr-6.2.1", require => Package["oracle-java8-installer"] } exec { "unpack_solr": command => "tar -zxf /tmp/solr-6.2.1.tar.gz -C ${install_dir}", path => $path, creates => "${solr_home}-6.2.1", require => Exec["download_solr"] } exec { "rename_solr": command => "ln -s ${install_dir}/solr-6.2.1 ${install_dir}/solr", path => $path, creates => "${solr_home}", require => Exec["unpack_solr"] } exec { 'chown_solr': command => "/bin/chown -R ${user}:${group} ${solr_home}-6.2.1", path => '/bin', user => 'root', require => Exec["rename_solr"] } file { "/home/${user}/.bashrc-setup-solr": content => template('solr/setup-solr.bash'), mode => 644, owner => $user, group => $group, require => [ Exec["unpack_solr"], File["/home/${user}"] ] } file_line { "setup_solr_home": ensure => present, path => "/home/${user}/.bashrc", line => ". .bashrc-setup-solr", require => [ Exec["unpack_solr"], File["/home/${user}"] ] } file { "/home/${user}/htrc_configs.tar.gz": source => "puppet:///modules/solr/htrc_configs.tar.gz", ensure => present, mode => 644, owner => $user, group => $group, require => Exec["rename_solr"] } exec { "unpack_solr_htrc_configs": command => "tar -zxf /home/${user}/htrc_configs.tar.gz -C ${solr_home}/server/solr/configsets", path => $path, user => $user, creates => "${solr_home}/server/solr/configsets/htrc_configs", require => [ File["/home/${user}/htrc_configs.tar.gz"], Exec["rename_solr"] ] } file { "/home/${user}/solr-init-collection.sh": content => template('solr/solr-init-collection.sh'), ensure => present, mode => 755, owner => $user, group => $group, require => File["/home/${user}"] } }