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