diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/dependencies | 33 | ||||
-rwxr-xr-x | bin/deploy | 14 | ||||
-rwxr-xr-x | bin/mrconfig | 7 | ||||
-rwxr-xr-x | bin/post-receive | 12 | ||||
-rwxr-xr-x | bin/post-update | 16 | ||||
-rwxr-xr-x | bin/provision | 11 |
6 files changed, 51 insertions, 42 deletions
diff --git a/bin/dependencies b/bin/dependencies index 507145b..4330730 100755 --- a/bin/dependencies +++ b/bin/dependencies @@ -3,6 +3,26 @@ # Puppet bootstrap dependencies. # +# Parameters +BASENAME="`basename $0`" +DEPLOY_DEPENDENCIES="rsync puppet-common hiera-eyaml" +DEVELOP_DEPENDENCIES="git mr whois hiera-eyaml" + +# Additional wheezy dependencies if not using puppet-common from wheezy-backports +#if [ "`head -c 1 /etc/debian_version`" == '7' ]; then +# DEPLOY_DEPENDENCIES="$DEPLOY_DEPENDENCIES ruby-hiera-puppet" +#fi + +# Set sudo config +if [ "`whoami`" != 'root' ]; then + SUDO="sudo" + + if ! sudo -n true; then + echo "Please set passwordless sudo." + exit 1 + fi +fi + # Install a package, thanks to the Hydra Suite. function provision_package { if [ -z "$1" ]; then @@ -17,12 +37,9 @@ function provision_package { fi } -# Set sudo config -if [ "`whoami`" != 'root' ]; then - SUDO="sudo" -fi - # Ensure basic packages are installed. -for package in puppet git mr whois; do - provision_package $package -done +if [ "$BASENAME" == "dependencies" ]; then + for package in $DEVELOP_DEPENDENCIES; do + provision_package $package + done +fi @@ -6,7 +6,6 @@ # Parameters DIRNAME="`dirname $0`" BASEDIR="$DIRNAME/.." -DEPLOY_DEPENDENCIES="puppet ruby-sqlite3 ruby-activerecord ruby-activerecord-deprecated-finders" # Determine hostname if [ ! -z "$1" ]; then @@ -15,10 +14,15 @@ else FQDN="`cat /etc/hostname`" fi -# Check for manifest -PUPPET_MANIFEST="$BASEDIR/puppet/manifests/nodes/$FQDN.pp" +# Set manifest +PUPPET_MANIFEST="$BASEDIR/manifests/nodes/$FQDN.pp" if [ ! -e "$PUPPET_MANIFEST" ]; then - echo "file not found: $PUPPET_MANIFEST" + PUPPET_MANIFEST="$BASEDIR/manifests/nodes/default.pp" +fi + +# Check manifest +if [ ! -e "$PUPPET_MANIFEST" ]; then + echo "No manifest found for $FQDN" exit 1 fi @@ -54,5 +58,5 @@ if [ -d "$BASEDIR/puppet/files/patches/$DIST" ]; then fi # Run puppet apply -PUPPET_OPTS="--confdir=$BASEDIR/puppet --modulepath=$BASEDIR/puppet/modules" +PUPPET_OPTS="--confdir=$BASEDIR --modulepath=$BASEDIR/modules" LC_ALL=C $SUDO puppet apply $PUPPET_OPTS $PUPPET_MANIFEST diff --git a/bin/mrconfig b/bin/mrconfig index dc753ac..48815c1 100755 --- a/bin/mrconfig +++ b/bin/mrconfig @@ -5,7 +5,7 @@ # Parameters GIT="git.fluxo.info" -URL="https://$GIT/?a=project_index" +URL="https://$GIT/projects.list" CWD="`pwd`" WORK="`dirname $0`/.." @@ -15,13 +15,12 @@ rm -f .mrconfig touch .mrconfig # Fetch repository list and updtate mrconfig -curl --stderr - $URL | grep "^puppet-" | cut -d ' ' -f 1 | while read module; do +curl --stderr - $URL | grep "^puppet-" | cut -d ' ' -f 1 | sed -e 's/\.git$//' | while read module; do folder="`echo $module | sed -e 's/^puppet-//'`" - folder="`basename $folder .git`" if [ "$folder" != "bootstrap" ]; then echo "Processing $folder..." - mr config puppet/modules/$folder checkout="git clone git://$GIT/$module $folder" + mr config puppet/modules/$folder checkout="git clone https://$GIT/$module $folder" fi done diff --git a/bin/post-receive b/bin/post-receive index 996189d..e6baa07 100755 --- a/bin/post-receive +++ b/bin/post-receive @@ -3,5 +3,15 @@ cd .. unset GIT_DIR -git checkout -f +if [ -d ".git/annex" ]; then + git annex sync +else + #git reset HEAD + git checkout -f +fi + +git submodule sync --recursive git submodule update --init --recursive + +cd - +exec git update-server-info diff --git a/bin/post-update b/bin/post-update deleted file mode 100755 index 48a6a16..0000000 --- a/bin/post-update +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -cd .. -unset GIT_DIR - -if [ -d ".git/annex" ]; then - git annex sync -else - git reset HEAD - git checkout -f -fi - -git submodule update --init --recursive - -cd - -exec git update-server-info diff --git a/bin/provision b/bin/provision index 16f102f..99cb862 100755 --- a/bin/provision +++ b/bin/provision @@ -13,23 +13,18 @@ source $DIRNAME/dependencies $SUDO apt-get update && DEBIAN_FRONTEND=noninteractive $SUDO apt-get dist-upgrade -y && $SUDO apt-get autoremove -y && $SUDO apt-get clean # Ensure additional dependencies are installed. -for package in usbutils; do - provision_package $package -done - -# Storeconfigs support -for package in ruby-sqlite3 ruby-activerecord ruby-activerecord-deprecated-finders; do +for package in $DEPLOY_DEPENDENCIES; do provision_package $package done # Link hiera configuration if needed. if [ ! -h "/etc/puppet/hiera.yaml" ]; then $SUDO rm -f /etc/puppet/hiera.yaml - $SUDO ln -s $DIRNAME/../hiera/hiera.yaml /etc/puppet/hiera.yaml + $SUDO ln -s $DIRNAME/../config/hiera.yaml /etc/puppet/hiera.yaml fi # Link puppet configuration if needed. -if [ ! -h "/etc/puppet/puppet.conf" ]; then +if [ ! -h "/etc/puppet/puppet.conf" ] && [ -e "$DIRNAME/../puppet.conf" ]; then $SUDO rm -f /etc/puppet/puppet.conf $SUDO ln -s $DIRNAME/../puppet.conf /etc/puppet/puppet.conf fi |