test_manifest.pp in poolparty-0.2.6 vs test_manifest.pp in poolparty-0.2.18

- old
+ new

@@ -4,139 +4,136 @@ # $hostname == master case $hostname { master : { # Variables -$ha_nodenames = [ 'master', 'node1' ] -$ha_node_ips = [ '192.168.0.1', '192.168.0.1' ] +$ha_nodenames = generate('/usr/bin/env', '/var/lib/gems/1.8/bin/server-list-active', '-c', 'name') +$ha_node_ips = generate('/usr/bin/env', '/var/lib/gems/1.8/bin/server-list-active', '-c', 'ip') +$ha_timeout = '5s' $ha_port = '80' + # exec + + + exec { + "heartbeat-update-cib": + command => '/usr/sbin/cibadmin -R -x /etc/ha.d/cib.xml', + path => '/usr/bin:/bin:/usr/local/bin:$PATH', + refreshonly => true + } + + + # package + + +# heartbeat-2 +class heartbeat-2 { + # remotefile file { "/etc/ha.d/ha.cf": - content => template("ha.cf"), - require => Package["heartbeat-2"], - mode => 444, ensure => 'present', - owner => 'root', - notify => Service["heartbeat"] + require => Package['heartbeat-2'], + mode => 444, + name => '/etc/ha.d/ha.cf', + notify => Service["heartbeat"], + content => template("ha.cf"), + owner => 'root' } file { "/etc/ha.d/authkeys": - content => template("authkeys"), - require => Package["heartbeat-2"], - mode => 400, ensure => 'present', - owner => 'root', - notify => Service["heartbeat"] + require => Package['heartbeat-2'], + mode => 400, + name => '/etc/ha.d/authkeys', + notify => Service["heartbeat"], + content => template("authkeys"), + owner => 'root' } file { "/etc/ha.d/cib.xml": - content => template("cib.xml"), - require => Package["heartbeat-2"], - mode => 444, ensure => 'present', - owner => 'root', - notify => Exec["heartbeat-update-cib"] + require => Package['heartbeat-2'], + mode => 444, + name => '/etc/ha.d/cib.xml', + notify => Exec["heartbeat-update-cib"], + content => template("cib.xml"), + owner => 'root' } # service service { "heartbeat": - hasstatus => true, enable => true, + hasstatus => true, ensure => 'running', + require => Package['heartbeat-2'], name => 'heartbeat' } +} +include heartbeat-2 + package { + "heartbeat-2": + ensure => 'present', + name => 'heartbeat-2' + } + } +default : {} +} +# $hostname == master +case $hostname { +master : { # exec exec { - "heartbeat-update-cib": - refreshonly => true, + "update pem for heartbeat": + command => 'scp /etc/puppet/ssl/ca/ca_crl.pem root@192.168.0.1:/etc/puppet/ssl/ca', path => '/usr/bin:/bin:/usr/local/bin:$PATH', - command => '/usr/sbin/cibadmin -R -x /etc/ha.d/cib.xml' + refreshonly => true } - - - # package - - - package { - "heartbeat-2": - ensure => 'installed', - name => 'heartbeat-2' - } } default : {} } # $hostname == master case $hostname { master : { # Variables $name_haproxy = 'test' -$nodenames_haproxy = [ 'master', 'node1' ] -$node_ips_haproxy = [ '192.168.0.1', '192.168.0.1' ] +$nodenames_haproxy = generate('/usr/bin/env', '/var/lib/gems/1.8/bin/server-list-active', '-c', 'name') +$node_ips_haproxy = generate('/usr/bin/env', '/var/lib/gems/1.8/bin/server-list-active', '-c', 'ip') $ports_haproxy = [ '80' ] $forwarding_port = '8080' $proxy_mode = 'http' # remotefile file { "/etc/haproxy.cfg": - content => template("haproxy.conf"), + ensure => 'present', require => Package["haproxy"], mode => 644, - ensure => 'present', - owner => 'root', - notify => Service["haproxy"] + name => '/etc/haproxy.cfg', + notify => Service["haproxy"], + content => template("haproxy.conf"), + owner => 'root' } - # service - - - service { - "sysklogd": - enable => true, - ensure => 'running', - name => 'sysklogd' - } - - - service { - "haproxy": - enable => true, - ensure => 'running', - name => 'haproxy' - } - - - # package - - - package { - "haproxy": - ensure => 'installed', - name => 'haproxy' - } - - # call_function line { '/etc/default/haproxy_line' : file => '/etc/default/haproxy', @@ -158,13 +155,67 @@ file => '/etc/syslog.conf', line => 'local0.* /var/log/haproxy.log', notify => Service["sysklogd"], ensure => 'present' } + + + # package + + + package { + "haproxy": + ensure => 'installed', + name => 'haproxy' + } + + + # service + + + service { + "sysklogd": + enable => true, + ensure => [ 'running', 'running' ], + name => 'sysklogd' + } + + + service { + "haproxy": + enable => true, + ensure => 'running', + name => 'haproxy' + } } default : {} } +# $hostname == master +case $hostname { +master : { + # exec + + + exec { + ". /etc/profile && server-start-master": + path => '/usr/bin:/bin:/usr/local/bin:$PATH' + } + + + # cron + + + cron { + "": + command => '. /etc/profile && which cloud-maintain | /bin/sh', + ensure => 'present', + minute => '*/3', + user => 'root' + } + } +default : {} +} # heartbeat class heartbeat { } @@ -176,10 +227,21 @@ include haproxy # ruby class ruby { + # call_function + + line { + '/etc/profile_line' : + file => '/etc/profile', + line => 'export PATH=$PATH:/var/lib/gems/1.8/bin:/sbin', + + ensure => 'present' + } + + # package package { "libreadline-ruby1.8": @@ -206,28 +268,10 @@ "ruby1.8": ensure => 'present', name => 'ruby1.8' } - - package { - "rubygems": - ensure => 'present', - name => 'rubygems' - } - - - # call_function - - line { - '/etc/profile_line' : - file => '/etc/profile', - line => 'export PATH=$PATH:/var/lib/gems/1.8/bin/', - - ensure => 'present' - } - } include ruby # poolparty class poolparty { @@ -235,32 +279,34 @@ # host host { "master": - ip => '192.168.0.1', ensure => 'present', - name => 'master' + name => 'master', + ip => '192.168.0.1' } host { "node1": - ip => '192.168.0.1', ensure => 'present', - name => 'node1' + name => 'node1', + ip => '192.168.0.1' } # cron cron { - "poolparty": - minute => '*/5', - command => 'cloud-maintain', - user => 'puppet' + "puppetd runner": + command => '. /etc/profile && /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master 2>&1', + ensure => 'present', + name => 'puppetd runner', + minute => [ 0, 15, 30, 45 ], + user => 'root' } # package @@ -270,210 +316,284 @@ ensure => 'present', name => 'erlang' } + package { + "erlang-dev": + ensure => 'present', + name => 'erlang-dev' + } + + + package { + "erlang-src": + ensure => 'present', + name => 'erlang-src' + } + + +# rubygems +class rubygems { + # gempackage -# open4 -class open4 { +# logging +class logging { # exec exec { - "gem-package-open4": - unless => 'gem list --local open4 | grep open4 ', + "logging": + command => 'gem install -y --no-ri --no-rdoc logging', require => Package['rubygems'], path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', - command => 'gem install -y --no-ri --no-rdoc open4', - cwd => '/tmp' + cwd => '/tmp', + unless => 'gem list --local logging | grep logging ' } } -include open4 +include logging -# parsetree -class parsetree { +# xml-simple +class xml-simple { # exec exec { - "gem-package-parsetree": - unless => 'gem list --local parsetree | grep parsetree ', + "xml-simple": + command => 'gem install -y --no-ri --no-rdoc xml-simple', require => Package['rubygems'], path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', - command => 'gem install -y --no-ri --no-rdoc parsetree', - cwd => '/tmp' + cwd => '/tmp', + unless => 'gem list --local xml-simple | grep xml-simple ' } -} -include parsetree + # gempackage -# rubyinline -class rubyinline { +# grempe-amazon-ec2 +class grempe-amazon-ec2 { # exec exec { - "gem-package-rubyinline": - unless => 'gem list --local rubyinline | grep rubyinline ', - require => Package['rubygems'], + "grempe-amazon-ec2": + command => 'gem install -y --no-ri --no-rdoc --source http://gems.github.com grempe-amazon-ec2', + require => Exec['xml-simple'], path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', - command => 'gem install -y --no-ri --no-rdoc rubyinline', - cwd => '/tmp' + cwd => '/tmp', + unless => 'gem list --local grempe-amazon-ec2 | grep grempe-amazon-ec2 ' } } -include rubyinline +include grempe-amazon-ec2 +} -# activesupport -class activesupport { +include xml-simple + +# rake +class rake { + # exec exec { - "gem-package-activesupport": - unless => 'gem list --local activesupport | grep activesupport ', + "rake": + command => 'gem install -y --no-ri --no-rdoc rake', require => Package['rubygems'], path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', - command => 'gem install -y --no-ri --no-rdoc activesupport', - cwd => '/tmp' + cwd => '/tmp', + unless => 'gem list --local rake | grep rake ' } } -include activesupport +include rake -# logging -class logging { +# hoe +class hoe { # exec exec { - "gem-package-logging": - unless => 'gem list --local logging | grep logging ', + "hoe": + command => 'gem install -y --no-ri --no-rdoc hoe', require => Package['rubygems'], path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', - command => 'gem install -y --no-ri --no-rdoc logging', - cwd => '/tmp' + cwd => '/tmp', + unless => 'gem list --local hoe | grep hoe ' } -} -include logging + # gempackage -# hoe -class hoe { +# open4 +class open4 { # exec exec { - "gem-package-hoe": - unless => 'gem list --local hoe | grep hoe ', - require => Package['rubygems'], + "open4": + command => 'gem install -y --no-ri --no-rdoc open4', + require => Exec['hoe'], path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', - command => 'gem install -y --no-ri --no-rdoc hoe', - cwd => '/tmp' + cwd => '/tmp', + unless => 'gem list --local open4 | grep open4 ' } } -include hoe +include open4 -# xml-simple -class xml-simple { +# ParseTree +class parsetree { # exec exec { - "gem-package-xml-simple": - unless => 'gem list --local xml-simple | grep xml-simple ', - require => Package['rubygems'], + "ParseTree": + command => 'gem install -y --no-ri --no-rdoc --version 2.2.0 ParseTree', + require => Exec['hoe'], path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', - command => 'gem install -y --no-ri --no-rdoc xml-simple', - cwd => '/tmp' + cwd => '/tmp', + unless => 'gem list --local ParseTree | grep ParseTree | grep 2.2.0' } -} -include xml-simple + # gempackage # ruby2ruby class ruby2ruby { # exec exec { - "gem-package-ruby2ruby": - unless => 'gem list --local ruby2ruby | grep ruby2ruby ', - require => Package['rubygems'], - path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', + "ruby2ruby": command => 'gem install -y --no-ri --no-rdoc ruby2ruby', - cwd => '/tmp' + require => Exec['ParseTree'], + path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', + cwd => '/tmp', + unless => 'gem list --local ruby2ruby | grep ruby2ruby ' } } include ruby2ruby -# grempe-amazon-ec2 -class grempe-amazon-ec2 { +# activesupport +class activesupport { # exec exec { - "gem-package-grempe-amazon-ec2": - unless => 'gem list --local grempe-amazon-ec2 | grep grempe-amazon-ec2 ', - require => Package['rubygems'], + "activesupport": + command => 'gem install -y --no-ri --no-rdoc activesupport', + require => Exec['ParseTree'], path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', - command => 'gem install -y --no-ri --no-rdoc --source http://gems.github.com grempe-amazon-ec2', - cwd => '/tmp' + cwd => '/tmp', + unless => 'gem list --local activesupport | grep activesupport ' } -} -include grempe-amazon-ec2 + # gempackage # auser-poolparty class auser-poolparty { # exec exec { - "gem-package-auser-poolparty": - unless => 'gem list --local auser-poolparty | grep auser-poolparty ', - require => Package['rubygems'], - path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', + "build_messenger": + command => '. /etc/profile && server-build-messenger', + require => Exec['auser-poolparty'], + path => '/usr/bin:/bin:/usr/local/bin:$PATH' + } + + + exec { + "start_node": + command => '. /etc/profile && server-start-node', + require => [ Exec['auser-poolparty'], Exec["build_messenger"] ], + path => '/usr/bin:/bin:/usr/local/bin:$PATH' + } + + + exec { + "auser-poolparty": command => 'gem install -y --no-ri --no-rdoc --source http://gems.github.com auser-poolparty', - cwd => '/tmp' + require => Exec['activesupport'], + path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', + cwd => '/tmp', + unless => 'gem list --local auser-poolparty | grep auser-poolparty ' } } include auser-poolparty + +} + +include activesupport + + +# RubyInline +class rubyinline { + + # exec + + + exec { + "RubyInline": + command => 'gem install -y --no-ri --no-rdoc RubyInline', + require => Exec['ParseTree'], + path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin', + cwd => '/tmp', + unless => 'gem list --local RubyInline | grep RubyInline ' + } + +} + +include RubyInline + +} + +include ParseTree + +} + +include hoe + +} + +include rubygems + package { + "rubygems": + ensure => 'present', + name => 'rubygems' + } } include poolparty # Custom functions