class spark { exec { "download_spark": command => "wget -O /tmp/spark.tar.gz http://d3kbcqa49mib13.cloudfront.net/spark-2.0.1-bin-hadoop2.7.tgz", path => $path, # user => $user, # group => $user, unless => "ls ${install_dir} | grep spark-2.0.1", require => Package["oracle-java8-installer"] } exec { "unpack_spark": command => "tar -zxf /tmp/spark.tar.gz -C ${install_dir}", path => $path, creates => "${spark_home}-2.0.1-bin-hadoop2.7", require => Exec["download_spark"] } exec { "rename_spark": command => "ln -s ${install_dir}/spark-2.0.1-bin-hadoop2.7 ${install_dir}/spark", path => $path, creates => "${spark_home}", require => Exec["unpack_spark"] } exec { 'chown_spark': command => "/bin/chown -R ${user}:${group} ${spark_home}-2.0.1-bin-hadoop2.7", path => '/bin', user => 'root', require => Exec["rename_spark"] } file { "${spark_home}/conf/slaves": content => template('spark/slaves'), mode => 644, owner => $user, group => $group, require => Exec["chown_spark"] } file { "/home/${user}/.bashrc-setup-spark": content => template('spark/setup-spark.bash'), mode => 644, owner => $user, group => $group, require => [ Exec["unpack_spark"], File["/home/${user}"] ] } file_line { "setup_spark_home": ensure => present, path => "/home/${user}/.bashrc", line => ". .bashrc-setup-spark", require => [ Exec["unpack_spark"], File["/home/${user}"] ] } }