Add support for install puppet modules.

Change-Id: I0fb81d64daea389a564405c76773108eaeec6684
This commit is contained in:
Monty Taylor 2012-07-24 10:03:23 -05:00
parent 8c001acda4
commit 40471655d3
7 changed files with 33 additions and 4 deletions

View File

@ -43,7 +43,7 @@ host for use by the OpenStack project.
sudo apt-get install puppet git openjdk-6-jre-headless mysql-server sudo apt-get install puppet git openjdk-6-jre-headless mysql-server
git clone git://github.com/openstack/openstack-ci-puppet.git git clone git://github.com/openstack/openstack-ci-puppet.git
cd openstack-ci-puppet/ cd openstack-ci-puppet/
sudo puppet apply --modulepath=modules manifests/site.pp sudo bash run_puppet.sh
Install MySQL Install MySQL
------------- -------------

11
install_modules.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/bash
MODULES="puppetlabs-mysql"
MODULE_LIST=`puppet module list`
for MOD in $MODULES ; do
if ! echo $MODULE_LIST | grep $MOD >/dev/null 2>&1 ; then
# This will get run in cron, so silence non-error output
puppet module install $MOD >/dev/null
fi
done

View File

@ -35,7 +35,7 @@ node "community.openstack.org" {
} }
node "ci-puppetmaster.openstack.org" { node "ci-puppetmaster.openstack.org" {
include openstack_project::puppet_cron include openstack_project::remove_cron
include openstack_project::puppetmaster include openstack_project::puppetmaster
} }

View File

@ -4,7 +4,7 @@ class openstack_project::puppet_cron {
cron { "updatepuppet": cron { "updatepuppet":
user => root, user => root,
minute => "*/15", minute => "*/15",
command => 'apt-get update >/dev/null 2>&1 ; sleep $((RANDOM\%600)) && cd /root/openstack-ci-puppet && /usr/bin/git pull -q && puppet apply -l /var/log/manifest.log --modulepath=/root/openstack-ci-puppet/modules manifests/site.pp', command => 'apt-get update >/dev/null 2>&1 ; sleep $((RANDOM\%600)) && /bin/bash /root/openstack-ci-puppet/run_puppet.sh /root/openstack-ci-puppet',
environment => "PATH=/var/lib/gems/1.8/bin:/usr/bin:/bin:/usr/sbin:/sbin", environment => "PATH=/var/lib/gems/1.8/bin:/usr/bin:/bin:/usr/sbin:/sbin",
} }
logrotate::file { 'updatepuppet': logrotate::file { 'updatepuppet':

View File

@ -5,7 +5,7 @@ class openstack_project::puppetmaster {
cron { "updatepuppetmaster": cron { "updatepuppetmaster":
user => root, user => root,
minute => "*/15", minute => "*/15",
command => 'sleep $((RANDOM\%600)) && cd /opt/openstack-ci-puppet/production && /usr/bin/git pull -q', command => 'sleep $((RANDOM\%600)) && cd /opt/openstack-ci-puppet/production && /usr/bin/git pull -q && /bin/bash install_modules.sh',
environment => "PATH=/var/lib/gems/1.8/bin:/usr/bin:/bin:/usr/sbin:/sbin", environment => "PATH=/var/lib/gems/1.8/bin:/usr/bin:/bin:/usr/sbin:/sbin",
} }
} }

View File

@ -6,6 +6,8 @@ start on runlevel[2345]
script script
cd /root/openstack-ci-puppet/modules cd /root/openstack-ci-puppet/modules
/usr/bin/git pull --ff-only /usr/bin/git pull --ff-only
echo "Installing modules" >> /var/log/manifest.log
/bin/bash install_modules.sh >> /var/log/manifest.log
echo "Running puppet on boot" >> /var/log/manifest.log echo "Running puppet on boot" >> /var/log/manifest.log
date >> /var/log/manifest.log date >> /var/log/manifest.log
/usr/bin/puppet apply --modulepath=/root/openstack-ci-puppet/modules -l /var/log/manifest.log /root/openstack-ci-puppet/manifests/site.pp /usr/bin/puppet apply --modulepath=/root/openstack-ci-puppet/modules -l /var/log/manifest.log /root/openstack-ci-puppet/manifests/site.pp

16
run_puppet.sh Normal file
View File

@ -0,0 +1,16 @@
#!/bin/bash
if ! test -z $1 ; then
BASE_DIR=$1
else
BASE_DIR=`pwd`
fi
MODULE_DIR=${BASE_DIR}/modules
MODULE_PATH=${MODULE_DIR}:/etc/puppet/modules
MANIFEST_LOG=/var/log/manifest.log
cd $BASE_DIR
/usr/bin/git pull -q && \
/bin/bash install_modules.sh && \
/usr/bin/puppet apply -l $MANIFEST_LOG --modulepath=$MODULE_PATH manifests/site.pp