diff --git a/manifests/site.pp b/manifests/site.pp index 87615457e6..410cd7165f 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -208,6 +208,15 @@ node "paste.openstack.org" { } +node "planet.openstack.org" { + include planet + + planet::site { "openstack": + git_url => "https://github.com/openstack/openstack-planet.git" + } +} + + node "devstack-oneiric.template.openstack.org" { include openstack_template include devstack_host diff --git a/modules/planet/manifests/init.pp b/modules/planet/manifests/init.pp new file mode 100644 index 0000000000..f1c62407f0 --- /dev/null +++ b/modules/planet/manifests/init.pp @@ -0,0 +1,24 @@ +class planet { + + package { 'planet-venus': + ensure => present + } + + package { 'nginx': + ensure => present + } + + file { '/srv/planet': + ensure => directory + } + + file { '/var/lib/planet': + ensure => directory + } + + service { 'nginx': + ensure => running, + hasrestart => true + } + +} diff --git a/modules/planet/manifests/site.pp b/modules/planet/manifests/site.pp new file mode 100644 index 0000000000..98ea64cbe8 --- /dev/null +++ b/modules/planet/manifests/site.pp @@ -0,0 +1,39 @@ +define planet::site($git_url) { + + file { "/etc/nginx/sites-available/planet-${name}": + ensure => present, + content => template("planet/nginx.erb"), + replace => true, + require => Package[nginx] + } + + file { "/etc/nginx/sites-enabled/planet-${name}": + ensure => link, + target => "/etc/nginx/sites-available/planet-${name}", + require => Package[nginx], + } + +# if we already have the mercurial repo the pull updates + + exec { "update_${name}_planet": + command => "git pull", + cwd => "/var/lib/planet/${name}", + path => "/bin:/usr/bin", + onlyif => "test -d /var/lib/planet/${name}" + } + +# otherwise get a new clone of it + + exec { "create_${name}_planet": + command => "git clone ${git_url} /var/lib/planet/${name}", + path => "/bin:/usr/bin", + onlyif => "test ! -d /var/lib/planet/${name}" + } + + cron { "update_planet_${name}": + user => root, + minute => 3, + command => "planet /var/lib/planet/${name}.ini" + } + +} diff --git a/modules/planet/templates/nginx.erb b/modules/planet/templates/nginx.erb new file mode 100644 index 0000000000..9448656588 --- /dev/null +++ b/modules/planet/templates/nginx.erb @@ -0,0 +1,5 @@ +server { + listen 80; + server_name planet.<%= name %>.org; + root /srv/planet/<%= name %>; +}