From 5b1cc7e49adeb7c6060f04fda0a667e3e17809ab Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 23 Aug 2014 17:31:41 +0200 Subject: wip --- ansible | 2 ++ ansible-playbook | 4 ++++ files/bin/fiken-dump-database | 40 ++++++++++++++++++++++++++++++++++++++++ files/bin/install-release | 13 +++++++++++++ files/bin/pull-and-release | 20 ++++++++++++++++++++ hosts | 5 +++++ playbook.yml | 16 ++++++++++++++++ vars.yml | 0 8 files changed, 100 insertions(+) create mode 100755 ansible create mode 100755 ansible-playbook create mode 100644 files/bin/fiken-dump-database create mode 100644 files/bin/install-release create mode 100644 files/bin/pull-and-release create mode 100644 hosts create mode 100644 playbook.yml create mode 100644 vars.yml diff --git a/ansible b/ansible new file mode 100755 index 0000000..4cb7f79 --- /dev/null +++ b/ansible @@ -0,0 +1,2 @@ +#!/bin/bash +exec ansible -i hosts "$@" diff --git a/ansible-playbook b/ansible-playbook new file mode 100755 index 0000000..f15757a --- /dev/null +++ b/ansible-playbook @@ -0,0 +1,4 @@ +#!/bin/bash +# Run with: +# ./ansible -K --limit production provision.yml +exec ansible-playbook -i hosts "$@" diff --git a/files/bin/fiken-dump-database b/files/bin/fiken-dump-database new file mode 100644 index 0000000..eb962d7 --- /dev/null +++ b/files/bin/fiken-dump-database @@ -0,0 +1,40 @@ +#!/bin/bash + +export BUP_DIR=$HOME/bups/postgres-backup + +now=`date -u +%Y-%m-%dT%H:%M:%S.000Z` + +db="$1" + +if [[ -z $db ]] +then + echo "usage: $0 " + exit 1 +fi + +dir="$HOME/backups/${db}" +name="pg_${db}_${now}.backup" +path="$dir/$name" + +mkdir -p "$dir" + +echo "Dumping $db to $path" + +time pg_dump -h localhost -U fiken-prod -b -Fc $db > $path +rm -rf "$dir/latest" +ln -s "$name" "$dir/latest" + +echo "Updating backups" +( +cd "$dir" +bup index -u . +bup save -n postgres-backup . +) + +echo "Dump complete" +echo "File size:" `ls -sh $path|cut -f 1 -d " "` +echo "" +echo "To restore to a db:" +echo "psql -1 -h localhost -U fiken-dev -d fiken-dev -c 'drop schema public CASCADE; create schema public'" +echo "vacuumlo -U fiken-dev -h localhost -v -l 10000 fiken-dev" +echo "pg_restore -O -U fiken-dev -h localhost -d fiken-dev" $name diff --git a/files/bin/install-release b/files/bin/install-release new file mode 100644 index 0000000..4b94bc0 --- /dev/null +++ b/files/bin/install-release @@ -0,0 +1,13 @@ +#!/bin/bash +set -e +set -x + +env=`app conf get env.FIKEN_ENVIRONMENT` +props="current/etc/$env/environment.properties" +password=`sed -n 's,^database.password=\(.*\),\1,p' $props` + +app conf set app.version $1 +app upgrade +sed 's,^\(database.password\)=.*,\1=$password,' $props > x +mv x $props +echo "Type app restart when ready to start new version." diff --git a/files/bin/pull-and-release b/files/bin/pull-and-release new file mode 100644 index 0000000..3d18437 --- /dev/null +++ b/files/bin/pull-and-release @@ -0,0 +1,20 @@ +#!/bin/bash +set -e +set -x + +git fetch + +now=$(date +%Y.%m) +count=$(git tag|grep -- -$now.|wc -l) + +echo "Does $now.$count look like a good release version? If not, abort now." +read + +git reset --hard +git checkout master +git merge --ff origin/master +git merge --no-ff origin/develop + +git push origin master + +mvn clean release:clean release:prepare release:perform -B -Papp -DdevelopmentVersion=master-SNAPSHOT -DreleaseVersion=$now.$count diff --git a/hosts b/hosts new file mode 100644 index 0000000..c4b8021 --- /dev/null +++ b/hosts @@ -0,0 +1,5 @@ +[prod] +kanel.fiken.no + +[arb] +vs.trygvis.io diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..2db2c68 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,16 @@ +--- +- hosts: arb + vars_files: + - vars.yml + gather_facts: false + sudo: yes + + tasks: + - group: name=fiken + - user: name=fiken comment="Topi Fiken" group=fiken home=/opt/fiken shell=/bin/bash + - file: dest=/opt/fiken/bin state=directory owner=fiken + - file: dest=/opt/fiken/opt state=directory owner=fiken + - git: repo=git://github.com/trygvis/appmgr + dest=/opt/fiken/opt/appmgr + accept_hostkey=true + - copy: src=files/bin/ dest=/opt/fiken/bin force=yes diff --git a/vars.yml b/vars.yml new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3