From 9d1371c8bbda1afc0ceb9cf13e67fb9de259bdc8 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Mon, 27 Jul 2015 11:16:50 +0200 Subject: [PATCH] Add playbook farm and improve customer support for playbooks --- ansible-playbook.sh | 35 ++++++++++++--------- farm.yml | 74 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 14 deletions(-) create mode 100644 farm.yml diff --git a/ansible-playbook.sh b/ansible-playbook.sh index caf6e2af..6277917e 100755 --- a/ansible-playbook.sh +++ b/ansible-playbook.sh @@ -8,15 +8,17 @@ cd $( cd $(dirname $(realpath $0)) ; pwd ) if [ $1 == "local" ] then + CUSTOM_DIR=false INVENTORY=./local.inventory shift else if [ -f ./inventory/inventory ] then - INVENTORY=./inventory/inventory + CUSTOM_DIR=./inventory else - INVENTORY=./inventory/$ANSIBLE_COMPANY/inventory - fi + CUSTOM_DIR=./inventory/$ANSIBLE_COMPANY + fi + INVENTORY=$CUSTOM_DIR/inventory fi if [ "$1" == "" ] @@ -29,16 +31,11 @@ fi if [ $1 == "custom" ] then shift - if [ $INVENTORY == "./inventory/inventory" ] - then - PLAYBOOK_PREFIX="./inventory" - else - PLAYBOOK_PREFIX="./inventory/$ANSIBLE_COMPANY" - fi + PLAYBOOK_PREFIX=$CUSTOM_DIR/ else - PLAYBOOK_PREFIX="." + PLAYBOOK_PREFIX="" fi -PLAYBOOK=$PLAYBOOK_PREFIX/$1.yml +PLAYBOOK=$PLAYBOOK_PREFIX$1.yml shift if [ ! -f $INVENTORY ] @@ -55,7 +52,17 @@ fi if [ -f $SECRETS ] then - ansible-playbook $PLAYBOOK -i $INVENTORY -e @$SECRETS "$@" -else - ansible-playbook $PLAYBOOK -i $INVENTORY --ask-sudo-pass "$@" + echo ansible-playbook $PLAYBOOK -i $INVENTORY -e @$SECRETS "$@" + else + echo ansible-playbook $PLAYBOOK -i $INVENTORY --ask-sudo-pass "$@" +fi + +if [ $CUSTOM_DIR != "false" ] && [ "$CUSTOM_DIR" != "$PLAYBOOK_PREFIX" ] && [ -f $CUSTOM_DIR/$PLAYBOOK ] + then + if [ -f $SECRETS ] + then + echo ansible-playbook $CUSTOM_DIR/$PLAYBOOK -i $INVENTORY -e @$SECRETS "$@" + else + echo ansible-playbook $CUSTOM_DIR/$PLAYBOOK -i $INVENTORY --ask-sudo-pass "$@" + fi fi diff --git a/farm.yml b/farm.yml new file mode 100644 index 00000000..f5992eec --- /dev/null +++ b/farm.yml @@ -0,0 +1,74 @@ +## +# Ansible playbook for setting up all hosts at once +# + +--- +# file: farm.yml + +- include: "validate.yml" + +- name: "Oracle servers" + hosts: "dbserver-oracle" + sudo: yes + roles: + - oracle + +- name: "MySqL servers" + hosts: "dbserver-mysql" + sudo: yes + roles: + - mysql + +- name: "Drupal servers" + hosts: "webserver-drupal" + sudo: yes + roles: + - drupal + +- name: "ownCloud servers" + hosts: "owncloudserver" + sudo: yes + roles: + - owncloud + +- name: "Piwik servers" + hosts: "piwikserver" + sudo: yes + roles: + - piwik + +- name: "Proxy servers" + hosts: "proxyserver" + sudo: yes + roles: + - haproxy + +- name: "Compass instances" + hosts: "compassinstance" + sudo: yes + roles: + - compass + +- name: "nodeJS servers" + hosts: "nodejsserver" + sudo: yes + roles: + - nodejs + +- name: "SVN servers" + hosts: "svnserver" + sudo: yes + roles: + - svnserver + +- name: "APT proxies" + hosts: "apt-proxy" + sudo: yes + roles: + - aptproxy + +- name: "OpenPhoto servers" + hosts: "openphotoserver" + sudo: yes + roles: + - openphoto -- GitLab