diff --git a/setup.cfg b/setup.cfg index 193fdef5..e73c85b6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -23,8 +23,11 @@ classifier = packages = kolla_mesos data_files = + share/kolla-mesos/ansible = ansible/* share/kolla-mesos/config = config/* share/kolla-mesos/deployment_files = deployment_files/* +scripts = + tools/kolla-mesos-ansible [entry_points] console_scripts = diff --git a/tools/kolla-mesos-ansible b/tools/kolla-mesos-ansible new file mode 100755 index 00000000..b609e0c7 --- /dev/null +++ b/tools/kolla-mesos-ansible @@ -0,0 +1,81 @@ +#!/bin/bash + +function find_base_dir { + local real_path=$(python -c "import os,sys;print os.path.realpath('$0')") + local dir_name="$(dirname "$real_path")" + if [[ ${dir_name} == "/usr/bin" ]]; then + BASEDIR=/usr/share/kolla-mesos + elif [[ ${dir_name} == "/usr/local/bin" ]]; then + BASEDIR=/usr/local/share/kolla-mesos + else + BASEDIR="${dir_name}/.." + fi +} + +function process_cmd { + echo "$ACTION : $CMD" + $CMD + if [[ $? -ne 0 ]]; then + echo "Command failed $CMD" + exit 1 + fi +} + +function usage { + cat < Specify path to Ansible inventory file + --help, -h Show this usage information + +Commands: + deploy Deploy and start all Mesos containers +EOF +} + +ARGS=$(getopt -o hi: -l help,inventory: --name "$0" -- "$@") || { usage >&2; exit 2; } +eval set -- "$ARGS" + +find_base_dir + +INVENTORY="${BASEDIR}/ansible/inventory/all-in-one" +PLAYBOOK="${BASEDIR}/ansible/site.yml" + +while [ "$#" -gt 0 ]; do + case "$1" in + (--inventory|-i) + INVENTORY="$2" + shift 2 + ;; + + (--help|-h) + usage + shift + exit 0 + ;; + + (--) + shift + break + ;; + + (*) + echo "error" + exit 3 + ;; + esac +done + + +case "$1" in +(deploy) + CMD="ansible-playbook -i $INVENTORY -e @/etc/kolla-mesos/globals.yml -e @/etc/kolla-mesos/passwords.yml $PLAYBOOK" + ;; +(*) + usage + exit 0 + ;; +esac + +process_cmd