summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/dependencies33
-rwxr-xr-xbin/deploy14
-rwxr-xr-xbin/mrconfig7
-rwxr-xr-xbin/post-receive12
-rwxr-xr-xbin/post-update16
-rwxr-xr-xbin/provision11
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
diff --git a/bin/deploy b/bin/deploy
index 5d3361b..22065dc 100755
--- a/bin/deploy
+++ b/bin/deploy
@@ -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