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}/solr-init-collection.sh": content => template('solr/solr-init-collection.sh'), ensure => present, mode => 755, owner => $user, group => $group, require => File["/home/${user}"] } }