From fc08d8d4e96fb638e3ac8c2a50c973322c278d84 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 26 Oct 2015 14:08:14 -0200 Subject: [PATCH] Deploy: apply patches before deployment --- bin/deploy | 23 +++++++++++++++++++ .../puppet-stack-level.md} | 5 ++-- .../puppet-stack-level.patch} | 0 3 files changed, 25 insertions(+), 3 deletions(-) rename files/patches/{README.md => trusty/puppet-stack-level.md} (65%) rename files/patches/{puppet-stack-level-trusty.patch => trusty/puppet-stack-level.patch} (100%) diff --git a/bin/deploy b/bin/deploy index 8d296e9..22e3ea8 100755 --- a/bin/deploy +++ b/bin/deploy @@ -33,6 +33,29 @@ for package in $DEPLOY_DEPENDENCIES; do provision_package $package done +# Parameters that needed dependencies installed +DIST="`facter lsbdistcodename`" + +# Apply patches +if [ -d "$BASEDIR/puppet/files/patches/$DIST" ]; then + ( + # Patches should be generated relativelly to the root folder + cd / + + # Only apply if needed + # Thanks https://unix.stackexchange.com/questions/55780/check-if-a-file-or-folder-has-been-patched-already + for patch in `ls $BASEDIR/puppet/files/patches/$DIST`; do + patch -p0 -N --dry-run --silent < $patch 2> /dev/null + # If the patch has not been applied then the $? which is the exit status + # for last command would have a success status code = 0 + if [ "$?" == "0" ]; then + # Apply the patch + patch -p0 -N < $patch + fi + done + ) +fi + # Run puppet apply PUPPET_OPTS="--confdir=$BASEDIR/puppet --modulepath=$BASEDIR/puppet/modules" $SUDO LC_ALL=C puppet apply $PUPPET_OPTS $PUPPET_MANIFEST" diff --git a/files/patches/README.md b/files/patches/trusty/puppet-stack-level.md similarity index 65% rename from files/patches/README.md rename to files/patches/trusty/puppet-stack-level.md index 649bdf6..9a3f4d7 100644 --- a/files/patches/README.md +++ b/files/patches/trusty/puppet-stack-level.md @@ -1,4 +1,3 @@ -Patches -======= +# Puppet stack level patch -* [Puppet master fails with 'stack level too deep' error when storeconfigs = true](https://bugs.launchpad.net/ubuntu/+source/puppet/+bug/1313595): puppet-stack-level-trusty.patch. +* [Puppet master fails with 'stack level too deep' error when storeconfigs = true](https://bugs.launchpad.net/ubuntu/+source/puppet/+bug/1313595). diff --git a/files/patches/puppet-stack-level-trusty.patch b/files/patches/trusty/puppet-stack-level.patch similarity index 100% rename from files/patches/puppet-stack-level-trusty.patch rename to files/patches/trusty/puppet-stack-level.patch -- 2.39.5