- move packages from aggregator to other components
which they belong in
- ensure rails db is dropped before uninstalling
aggregator packages
- cleanup iwhd delay so that it only occurs after
iwhd is launched and not on every bucket creation
- small fix to iwhd service to make use of service status
- small fix to postgres module to initialize db w/ UTF8
---
contrib/deltacloud_recipe.spec | 7 ++-
recipes/deltacloud_recipe/manifests/aggregator.pp | 68 +------------------
.../deltacloud_recipe/manifests/image-factory.pp | 63 ++++++++++++++++++
recipes/deltacloud_recipe/manifests/iwhd.pp | 21 +++++-
recipes/postgres/manifests/init.pp | 2 +-
5 files changed, 91 insertions(+), 70 deletions(-)
diff --git a/contrib/deltacloud_recipe.spec b/contrib/deltacloud_recipe.spec
index a598101..02ed945 100644
--- a/contrib/deltacloud_recipe.spec
+++ b/contrib/deltacloud_recipe.spec
@@ -3,7 +3,7 @@
Summary: DeltaCloud Puppet Recipe
Name: deltacloud_recipe
-Version: 0.0.3
+Version: 0.0.4
Release: 1%{?dist}
Group: Applications/Internet
@@ -49,6 +49,11 @@ rm -rf %{buildroot}
%{dchome}
%changelog
+* Wed Dec 22 2010 Mohammed Morsi <mmorsi(a)redhat.com> 0.0.4-1
+- Revamp deltacloud recipe to make it more puppetized,
+ use general purpose firewall, postgres, ntp modules,
+ and to fix many various things
+
* Wed Sep 29 2010 Mohammed Morsi <mmorsi(a)redhat.com> 0.0.3-1
- Renamed package from deltacloud appliance
- to deltacloud recipe
diff --git a/recipes/deltacloud_recipe/manifests/aggregator.pp
b/recipes/deltacloud_recipe/manifests/aggregator.pp
index 0072a0f..2be247c 100644
--- a/recipes/deltacloud_recipe/manifests/aggregator.pp
+++ b/recipes/deltacloud_recipe/manifests/aggregator.pp
@@ -3,32 +3,8 @@
class deltacloud::aggregator inherits deltacloud {
### Install the deltacloud components
# specific versions of these two packages are needed and we need to pull the third
in
- package { 'python-imgcreate':
- provider => 'rpm', ensure => installed,
- source =>
'http://repos.fedorapeople.org/repos/deltacloud/appliance/fedora-13/x86_64/python-imgcreate-031-1.fc12.1.x86_64.rpm'}
- package { 'livecd-tools':
- provider => 'rpm', ensure => installed,
- source =>
'http://repos.fedorapeople.org/repos/deltacloud/appliance/fedora-13/x86_64/livecd-tools-031-1.fc12.1.x86_64.rpm',
- require => Package['python-imgcreate']}
- package { 'appliance-tools':
- provider => 'yum', ensure => installed,
- require => Package["livecd-tools",
"python-imgcreate"]}
-
- # TODO: Fix me, find a better way to do this...
- # We need to also install this rpm from amazon
- package{"ec2-ami-tools":
- provider => "rpm",
- source =>
"http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm",
- ensure => 'installed' }
-
package { 'rubygem-deltacloud-client':
provider => 'yum', ensure => 'installed' }
- package { 'rubygem-deltacloud-image-builder-agent':
- provider => 'yum', ensure => 'installed',
- require => Package['appliance-tools',
'livecd-tools', 'python-imgcreate', 'ec2-ami-tools']}
- package { 'iwhd':
- provider => 'yum', ensure => 'installed' }
-
package {['deltacloud-aggregator',
'deltacloud-aggregator-daemons',
@@ -99,49 +75,13 @@ class deltacloud::aggregator::disabled {
package {'deltacloud-aggregator':
provider => 'yum', ensure => 'absent',
- require => Package['deltacloud-aggregator-daemons',
- 'deltacloud-aggregator-doc'] }
+ require => [Package['deltacloud-aggregator-daemons',
+ 'deltacloud-aggregator-doc'],
+ Rails::Drop::Db["drop_deltacloud_database"]] }
+
package { 'rubygem-deltacloud-client':
provider => 'yum', ensure => 'absent',
require => Package['deltacloud-aggregator']}
- package { 'rubygem-deltacloud-image-builder-agent':
- provider => 'yum', ensure => 'absent',
- require => Package['deltacloud-aggregator']}
- package { 'iwhd':
- provider => 'yum', ensure => 'absent',
- require => [Package['deltacloud-aggregator'],
Service['iwhd']]}
-
- # FIXME these lingering dependencies, pulled in for
- # rubygem-deltacloud-image-builder-agent, need to be removed as
- # ec2-ami-tools and appliance-tools depend on them and using
- # 'absent' in the context of the 'yum' provider dispatches
- # to 'rpm -e' instead of 'yum erase'
- package { ['rubygem-boxgrinder-build-ec2-platform-plugin',
- 'rubygem-boxgrinder-build-centos-os-plugin',
- 'rubygem-boxgrinder-build-fedora-os-plugin']:
- provider => "yum", ensure => 'absent',
- require => Package['rubygem-deltacloud-image-builder-agent']}
- package { 'rubygem-boxgrinder-build-rhel-os-plugin':
- provider => "yum", ensure => 'absent',
- require =>
Package['rubygem-boxgrinder-build-centos-os-plugin']}
- package { 'rubygem-boxgrinder-build-rpm-based-os-plugin':
- provider => "yum", ensure => 'absent',
- require => Package['rubygem-boxgrinder-build-rhel-os-plugin',
- 'rubygem-boxgrinder-build-fedora-os-plugin']}
-
- package { 'ec2-ami-tools':
- provider => "yum", ensure => 'absent',
- require =>
Package['rubygem-boxgrinder-build-ec2-platform-plugin']}
- package { 'appliance-tools':
- provider => 'yum', ensure => 'absent',
- require =>
Package['rubygem-boxgrinder-build-rpm-based-os-plugin']}
- package { 'livecd-tools':
- provider => 'yum', ensure => 'absent',
- require => Package['appliance-tools']}
- package { 'python-imgcreate':
- provider => 'yum', ensure => 'absent',
- require => Package['appliance-tools',
'livecd-tools']}
-
### Stop the deltacloud services
service { ['condor', 'httpd']:
diff --git a/recipes/deltacloud_recipe/manifests/image-factory.pp
b/recipes/deltacloud_recipe/manifests/image-factory.pp
index 0888dd8..e82be1f 100644
--- a/recipes/deltacloud_recipe/manifests/image-factory.pp
+++ b/recipes/deltacloud_recipe/manifests/image-factory.pp
@@ -1,6 +1,31 @@
# Deltacloud image factory puppet definitions
class deltacloud::image-factory inherits deltacloud {
+ ### Install the deltacloud components
+ # specific versions of these two packages are needed and we need to pull the third
in
+ package { 'python-imgcreate':
+ provider => 'rpm', ensure => installed,
+ source =>
'http://repos.fedorapeople.org/repos/deltacloud/appliance/fedora-13/x86_64/python-imgcreate-031-1.fc12.1.x86_64.rpm'}
+ package { 'livecd-tools':
+ provider => 'rpm', ensure => installed,
+ source =>
'http://repos.fedorapeople.org/repos/deltacloud/appliance/fedora-13/x86_64/livecd-tools-031-1.fc12.1.x86_64.rpm',
+ require => Package['python-imgcreate']}
+ package { 'appliance-tools':
+ provider => 'yum', ensure => installed,
+ require => Package["livecd-tools",
"python-imgcreate"]}
+
+ # TODO: Fix me, find a better way to do this...
+ # We need to also install this rpm from amazon
+ package{"ec2-ami-tools":
+ provider => "rpm",
+ source =>
"http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm",
+ ensure => 'installed' }
+
+ package { 'rubygem-deltacloud-image-builder-agent':
+ provider => 'yum', ensure => 'installed',
+ require => Package['appliance-tools', 'livecd-tools',
'python-imgcreate', 'ec2-ami-tools']}
+
+
### Configure boxgrinder, this should go into the boxgrinder rpms eventually
file { "/boxgrinder": ensure => "directory"}
file { "/boxgrinder/appliances":
@@ -74,6 +99,44 @@ class deltacloud::image-factory::disabled {
hasstatus => true,
enable => false}
+
+ ### Uninstall the deltacloud components
+ package { 'rubygem-deltacloud-image-builder-agent':
+ provider => 'yum', ensure => 'absent',
+ require => Package['deltacloud-aggregator']}
+
+ # FIXME these lingering dependencies, pulled in for
+ # rubygem-deltacloud-image-builder-agent, need to be removed as
+ # ec2-ami-tools and appliance-tools depend on them and using
+ # 'absent' in the context of the 'yum' provider dispatches
+ # to 'rpm -e' instead of 'yum erase'
+ package { ['rubygem-boxgrinder-build-ec2-platform-plugin',
+ 'rubygem-boxgrinder-build-centos-os-plugin',
+ 'rubygem-boxgrinder-build-fedora-os-plugin']:
+ provider => "yum", ensure => 'absent',
+ require => Package['rubygem-deltacloud-image-builder-agent']}
+ package { 'rubygem-boxgrinder-build-rhel-os-plugin':
+ provider => "yum", ensure => 'absent',
+ require =>
Package['rubygem-boxgrinder-build-centos-os-plugin']}
+ package { 'rubygem-boxgrinder-build-rpm-based-os-plugin':
+ provider => "yum", ensure => 'absent',
+ require => Package['rubygem-boxgrinder-build-rhel-os-plugin',
+ 'rubygem-boxgrinder-build-fedora-os-plugin']}
+
+ package { 'ec2-ami-tools':
+ provider => "yum", ensure => 'absent',
+ require =>
Package['rubygem-boxgrinder-build-ec2-platform-plugin']}
+ package { 'appliance-tools':
+ provider => 'yum', ensure => 'absent',
+ require =>
Package['rubygem-boxgrinder-build-rpm-based-os-plugin']}
+ package { 'livecd-tools':
+ provider => 'yum', ensure => 'absent',
+ require => Package['appliance-tools']}
+ package { 'python-imgcreate':
+ provider => 'yum', ensure => 'absent',
+ require => Package['appliance-tools',
'livecd-tools']}
+
+
### Destroy and cleanup deltacloud artifacts
exec{"remove_deltacloud_templates": command => "/bin/rm -rf
/templates"}
exec{"remove_boxgrinder_dir": command => "/bin/rm -rf
/boxgrinder"}
diff --git a/recipes/deltacloud_recipe/manifests/iwhd.pp
b/recipes/deltacloud_recipe/manifests/iwhd.pp
index 9711b75..b756735 100644
--- a/recipes/deltacloud_recipe/manifests/iwhd.pp
+++ b/recipes/deltacloud_recipe/manifests/iwhd.pp
@@ -1,6 +1,10 @@
# Deltacloud iwhd puppet definitions
class deltacloud::iwhd inherits deltacloud {
+ ### Install the deltacloud components
+ package { 'iwhd':
+ provider => 'yum', ensure => 'installed' }
+
### Start the deltacloud services
file { "/data": ensure => 'directory' }
file { "/data/db": ensure => 'directory' }
@@ -11,8 +15,15 @@ class deltacloud::iwhd inherits deltacloud {
service { 'iwhd':
ensure => 'running',
enable => true,
+ hasstatus => true,
require => [Package['iwhd'],
Service[mongod]]}
+
+ # XXX ugly hack but iwhd might take some time to come up
+ exec{"iwhd_startup_pause":
+ command => "/bin/sleep 2",
+ unless => '/usr/bin/curl
http://localhost:9090';,
+ require => Service[iwhd]}
}
class deltacloud::iwhd::disabled {
@@ -25,15 +36,17 @@ class deltacloud::iwhd::disabled {
ensure => 'stopped',
enable => false,
hasstatus => true}
+
+
+ ### Uninstall the deltacloud components
+ package { 'iwhd':
+ provider => 'yum', ensure => 'absent',
+ require => [Package['deltacloud-aggregator'],
Service['iwhd']]}
}
# Create a named bucket in iwhd
define deltacloud::create_bucket(){
package{'curl': ensure => 'installed'}
- # XXX ugly hack but iwhd might take some time to come up
- exec{"iwhd_startup_pause":
- command => "/bin/sleep 2",
- require => Service[iwhd]}
exec{"create-bucket-${name}":
command => "/usr/bin/curl -X PUT
http://localhost:9090/templates",
require => [Exec['iwhd_startup_pause'], Package[curl]] }
diff --git a/recipes/postgres/manifests/init.pp b/recipes/postgres/manifests/init.pp
index 4a4fb5e..fad0b6e 100644
--- a/recipes/postgres/manifests/init.pp
+++ b/recipes/postgres/manifests/init.pp
@@ -39,7 +39,7 @@ class postgres::server inherits postgres {
}
exec { "pginitdb":
- command => "/usr/bin/initdb
--pgdata='/var/lib/pgsql/data'",
+ command => "/usr/bin/initdb
--pgdata='/var/lib/pgsql/data' -E UTF8",
user => "postgres",
group => "postgres",
creates => "/var/lib/pgsql/data/PG_VERSION",
--
1.7.2.3