|
| 1 | + |
| 2 | +# Based loosely on https://gist.github.com/1190526 |
| 3 | +# This can probably be simplified when there is a deb package for ES. |
| 4 | + |
| 5 | +class elasticsearch { |
| 6 | + |
| 7 | + ## NOTE: moved to init.pp so that we don't get a huge pile of updates to |
| 8 | + ## previously installed packages |
| 9 | + |
| 10 | + # exec { "add_java_repo": |
| 11 | + # # For sun java: |
| 12 | + # command => 'sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"', |
| 13 | + # require => Package["python-software-properties"] |
| 14 | + # } |
| 15 | + # |
| 16 | + # exec { "init_java_repo": |
| 17 | + # command => "sudo apt-get update", |
| 18 | + # require => Exec['add_java_repo'] |
| 19 | + # } |
| 20 | + |
| 21 | + exec { "accept_jre_license": |
| 22 | + command => "echo 'sun-java6-jre shared/accepted-sun-dlj-v1-1 boolean true' | sudo debconf-set-selections", |
| 23 | + require => Exec["init_java_repo"] |
| 24 | + } |
| 25 | + |
| 26 | + exec { "accept_java_license": |
| 27 | + command => "echo 'sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true' | sudo debconf-set-selections", |
| 28 | + require => Exec["init_java_repo"] |
| 29 | + } |
| 30 | + |
| 31 | + exec { "accept_java_plugin_license": |
| 32 | + command => "echo 'sun-java6-plugin shared/accepted-sun-dlj-v1-1 boolean true' | sudo debconf-set-selections", |
| 33 | + require => Exec["init_java_repo"] |
| 34 | + } |
| 35 | + |
| 36 | + package { |
| 37 | + ["sun-java6-jre", "sun-java6-bin", "sun-java6-plugin", "curl"]: |
| 38 | + ensure => installed, |
| 39 | + require => [ |
| 40 | + Exec["accept_jre_license"], |
| 41 | + Exec["accept_java_plugin_license"], |
| 42 | + Exec["accept_java_license"] |
| 43 | + ]; |
| 44 | + } |
| 45 | + |
| 46 | + exec { "get_source": |
| 47 | + cwd => "/tmp", |
| 48 | + command => 'wget https://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.17.6.tar.gz -O elasticsearch.tar.gz', |
| 49 | + unless => 'test -d /usr/local/share/elasticsearch' |
| 50 | + } |
| 51 | + |
| 52 | + exec { "untar": |
| 53 | + cwd => "/tmp", |
| 54 | + command => 'tar -xzf elasticsearch.tar.gz', |
| 55 | + require => Exec["get_source"], |
| 56 | + unless => 'test -d /usr/local/share/elasticsearch' |
| 57 | + } |
| 58 | + |
| 59 | + exec { "move_source": |
| 60 | + cwd => "/tmp", |
| 61 | + command => 'sudo mv elasticsearch-* /usr/local/share/elasticsearch', |
| 62 | + require => Exec["untar"], |
| 63 | + unless => 'test -d /usr/local/share/elasticsearch' |
| 64 | + } |
| 65 | + |
| 66 | + exec { "get_service": |
| 67 | + cwd => "/tmp", |
| 68 | + command => 'curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz', |
| 69 | + require => [Package["curl"], Exec["move_source"]], |
| 70 | + unless => 'test -d /usr/local/share/elasticsearch/bin/service' |
| 71 | + } |
| 72 | + |
| 73 | + exec { "move_service": |
| 74 | + cwd => "/tmp", |
| 75 | + command => 'sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/', |
| 76 | + require => [Exec["get_service"], Exec["move_source"]], |
| 77 | + unless => 'test -d /usr/local/share/elasticsearch/bin/service' |
| 78 | + } |
| 79 | + |
| 80 | + exec { "install_service": |
| 81 | + # Makes /etc/init.d/elasticsearch |
| 82 | + command => 'sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install', |
| 83 | + # Install if service is not already running. |
| 84 | + unless => 'test `cat /usr/local/share/elasticsearch/bin/service/elasticsearch.java.status` = STARTED', |
| 85 | + require => [ |
| 86 | + Exec["move_service"], |
| 87 | + Package["sun-java6-jre", "sun-java6-bin", "sun-java6-plugin", "curl"] |
| 88 | + ] |
| 89 | + } |
| 90 | + |
| 91 | + service { "elasticsearch": |
| 92 | + enable => true, |
| 93 | + ensure => "running", |
| 94 | + require => Exec["install_service"] |
| 95 | + } |
| 96 | +} |
0 commit comments