diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2015-11-06 11:00:06 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2015-11-06 11:00:06 -0200 |
commit | 5512c493e13998d4c83d7eab3d89e5a1c0836566 (patch) | |
tree | ee0016cd764492344be3a2075acb3bc2fcef9ab1 /bin | |
parent | f9fa240c5227020dd10c6f1f309afba1d5a75c1e (diff) | |
download | debian-5512c493e13998d4c83d7eab3d89e5a1c0836566.tar.gz debian-5512c493e13998d4c83d7eab3d89e5a1c0836566.tar.bz2 |
Squashed 'puppet/' changes from 26c7b4f..8f7043a
8f7043a Disable backup on puppet-bootstrap.example.org
ea035ff Hiera: change domain and location eval order
f418291 Adds default node
096b65a Removes darkice module
7663170 Updates TODO
d03a934 Deploy: cleanup
66bd115 Deploy: fixes
51b00aa Deploy: apply patches before deployment (2)
fc08d8d Deploy: apply patches before deployment
89cc9aa Typo
e0169de Masterless puppet is supported
a23b6a0 TODO: apply patches
49c4466 Patches, deployment code and TODO update
91477be Use settings::confdir on hiera datadir
381096e TODO cleanup
3d3eb59 Updates TODO
57c6940 Hiera fixes
5a2de12 New hiera scheme for secrets storage
4fc808f Get rid of environments, use git branches instead
47bc020 Updates mrconfig
0d32fa5 New canonical URL
08cd538 Updates TODO
4cfe7fb Site manifests
ff61a20 Updates TODO
20f7608 Adds git hooks for push-to-deploy
6759fe7 Another LAMP example
a461d98 Really remove bootstrap from mrconfig
1920fba Vagrant: apache user and group
f13cb8a Formatting
7425fad Adds puppet-bootstrap.example.org.yaml
4647b02 Vagrant: LAMP example
42ce487 Vagrantfile: example of forwarded port
328873a Fix default hostname
41c9d89 Vagrantfile: set fqdn
72f61db Switch to parametrized classes
fd90a64 Vagrant hostname
43816c7 Vagrantfile minor edit
1932d55 Updates mrconfig
39fa2d5 Fix hiera path
df5df0b Submodules: force
e0b4ebe Updates TODO
ee7491e Updates TODO
65746ac TODO: syslog-ng
fe79512 TODO: modules
60a3d68 TODO update
a7e3e4c Storeconfigs support for vagrant/jessie
0d6de38 Coding style
28bd7e2 Default empty keys.d folder
d33c587 Shell provisioner sudo fix
47c83e6 Vagrant provisioning fixes
6f0a560 Removes VIM modelines from Vagrantfile
c9e8e7a Call nodo as a parametrized class
3730114 More changes for puppet 3.x
106977f Remove import definitions (deprecated since puppet 3.x)
3c13239 TODO update
5491a52 Mock puppet.conf with environment config
133e36b Initial changes for jessie
67baef2 Git and cgit vhosts
097b8ec Nginx: dhparams
git-subtree-dir: puppet
git-subtree-split: 8f7043a8948b3236d3c2582c865b27af4613c632
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/dependencies | 8 | ||||
-rwxr-xr-x | bin/deploy | 58 | ||||
-rwxr-xr-x | bin/mrconfig | 8 | ||||
-rwxr-xr-x | bin/post-receive | 7 | ||||
-rwxr-xr-x | bin/post-update | 16 | ||||
-rwxr-xr-x | bin/provision | 30 | ||||
-rwxr-xr-x | bin/submodules | 2 |
7 files changed, 109 insertions, 20 deletions
diff --git a/bin/dependencies b/bin/dependencies index 78ca659..507145b 100755 --- a/bin/dependencies +++ b/bin/dependencies @@ -1,6 +1,6 @@ #!/bin/bash # -# Simple shell provisioner for Vagrant instances. +# Puppet bootstrap dependencies. # # Install a package, thanks to the Hydra Suite. @@ -13,16 +13,16 @@ function provision_package { if [ "$?" == "1" ]; then echo "Installing package $1..." - DEBIAN_FRONTEND=noninteractive $sudo apt-get install $1 -y + DEBIAN_FRONTEND=noninteractive $SUDO apt-get install $1 -y fi } # Set sudo config if [ "`whoami`" != 'root' ]; then - sudo="sudo" + SUDO="sudo" fi # Ensure basic packages are installed. -for package in puppet ruby-hiera-puppet mr whois; do +for package in puppet git mr whois; do provision_package $package done diff --git a/bin/deploy b/bin/deploy new file mode 100755 index 0000000..5d3361b --- /dev/null +++ b/bin/deploy @@ -0,0 +1,58 @@ +#!/bin/bash +# +# Deploy configuration using puppet. +# + +# Parameters +DIRNAME="`dirname $0`" +BASEDIR="$DIRNAME/.." +DEPLOY_DEPENDENCIES="puppet ruby-sqlite3 ruby-activerecord ruby-activerecord-deprecated-finders" + +# Determine hostname +if [ ! -z "$1" ]; then + FQDN="$1" +else + FQDN="`cat /etc/hostname`" +fi + +# Check for manifest +PUPPET_MANIFEST="$BASEDIR/puppet/manifests/nodes/$FQDN.pp" +if [ ! -e "$PUPPET_MANIFEST" ]; then + echo "file not found: $PUPPET_MANIFEST" + exit 1 +fi + +# Install dependencies +source $DIRNAME/dependencies + +# Ensure additional dependencies are installed. +for package in $DEPLOY_DEPENDENCIES; do + provision_package $package +done + +# Parameters that needs 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 < $BASEDIR/puppet/files/patches/$DIST/$patch &> /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 < $BASEDIR/puppet/files/patches/$DIST/$patch + fi + done + ) +fi + +# Run puppet apply +PUPPET_OPTS="--confdir=$BASEDIR/puppet --modulepath=$BASEDIR/puppet/modules" +LC_ALL=C $SUDO puppet apply $PUPPET_OPTS $PUPPET_MANIFEST diff --git a/bin/mrconfig b/bin/mrconfig index f525db3..dc753ac 100755 --- a/bin/mrconfig +++ b/bin/mrconfig @@ -1,10 +1,10 @@ #!/bin/bash # # Build a mrconfig for the needed modules. -# +# # Parameters -GIT="git.sarava.org" +GIT="git.fluxo.info" URL="https://$GIT/?a=project_index" CWD="`pwd`" WORK="`dirname $0`/.." @@ -18,8 +18,8 @@ touch .mrconfig curl --stderr - $URL | grep "^puppet-" | cut -d ' ' -f 1 | while read module; do folder="`echo $module | sed -e 's/^puppet-//'`" folder="`basename $folder .git`" - - if [ "$module" != "$bootstrap" ]; then + + if [ "$folder" != "bootstrap" ]; then echo "Processing $folder..." mr config puppet/modules/$folder checkout="git clone git://$GIT/$module $folder" fi diff --git a/bin/post-receive b/bin/post-receive new file mode 100755 index 0000000..996189d --- /dev/null +++ b/bin/post-receive @@ -0,0 +1,7 @@ +#!/bin/sh + +cd .. +unset GIT_DIR + +git checkout -f +git submodule update --init --recursive diff --git a/bin/post-update b/bin/post-update new file mode 100755 index 0000000..48a6a16 --- /dev/null +++ b/bin/post-update @@ -0,0 +1,16 @@ +#!/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 e200e51..16f102f 100755 --- a/bin/provision +++ b/bin/provision @@ -3,25 +3,33 @@ # Simple shell provisioner for Vagrant instances. # -# Ensure the system is updated. -sudo apt-get update && DEBIAN_FRONTEND=noninteractive sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y && sudo apt-get clean +# Parameters +DIRNAME="`dirname $0`" + +# Load dependencies +source $DIRNAME/dependencies -# Install dependencies -source /vagrant/puppet/bin/dependencies +# Ensure the system is updated. +$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 sqlite3 libsqlite3-ruby libactiverecord-ruby ruby-sqlite3 usbutils; do +for package in usbutils; do + provision_package $package +done + +# Storeconfigs support +for package in ruby-sqlite3 ruby-activerecord ruby-activerecord-deprecated-finders; do provision_package $package done -# Link hiera configuration. +# Link hiera configuration if needed. if [ ! -h "/etc/puppet/hiera.yaml" ]; then - sudo rm -f /etc/puppet/hiera.yaml - sudo ln -s /vagrant/puppet/hiera/hiera.yaml /etc/puppet/hiera.yaml + $SUDO rm -f /etc/puppet/hiera.yaml + $SUDO ln -s $DIRNAME/../hiera/hiera.yaml /etc/puppet/hiera.yaml fi -# Link puppet configuration. +# Link puppet configuration if needed. if [ ! -h "/etc/puppet/puppet.conf" ]; then - sudo rm -f /etc/puppet/puppet.conf - sudo ln -s /vagrant/puppet/puppet.conf /etc/puppet/puppet.conf + $SUDO rm -f /etc/puppet/puppet.conf + $SUDO ln -s $DIRNAME/../puppet.conf /etc/puppet/puppet.conf fi diff --git a/bin/submodules b/bin/submodules index f79b635..3abc46d 100755 --- a/bin/submodules +++ b/bin/submodules @@ -20,7 +20,7 @@ for repo in $repos; do module="`basename $repo .git | sed -e s/^puppet-//`" if [ ! -d "modules/$module" ]; then echo "Processing puppet module $module..." - git submodule add $repo modules/$module + git submodule add -f $repo modules/$module elif [ -e "modules/$module/.git" ]; then # The puppet module exists and is a git submodule, so update it ( cd module/$module && git pull origin master ) |