diff --git a/deploy.py b/deploy.py index 3731f71..916c664 100755 --- a/deploy.py +++ b/deploy.py @@ -1,98 +1,98 @@ #!/usr/bin/env python2 # PYTHON_ARGCOMPLETE_OK import argparse, argcomplete import subprocess ANSIBLE="/usr/local/bin/ansible-playbook" PROD_BOOK="books/main_prod.yml" PROD_HOST="hosts-prod" PROD_VARS="../vars/main.yml" TEST_BOOK="books/main_test.yml" TEST_HOST="hosts-test" TEST_VARS="../vars/test.yml" ANSIBLE_HOSTS='' ANSIBLE_BOOK='' ANSIBLE_TAGS=[] ANSIBLE_SKIP=[] ACTION='' TYPE='' ENV='test' ENV_LIST = ['prod', 'test'] ACTION_LIST = ['update', 'create', 'init', 'update-phab'] + TYPE_LIST = ['conf-lbs', 'conf-app', 'conf-phd', 'conf-dbs', 'conf-fs', 'conf-backup', 'conf-monit', 'conf-ci-slave', 'conf-shib', 'gluster', 'jenkins'] # # OPTIONS # parser = argparse.ArgumentParser(description='Deploy script for Ansible') parser.add_argument('action', choices=ACTION_LIST) parser.add_argument('-t', '--type', choices=TYPE_LIST, nargs='+') parser.add_argument('-e', '--env', choices=ENV_LIST) parser.set_defaults(action='update', type=[], env='test') argcomplete.autocomplete(parser) args = parser.parse_args() # # ENVIRONMENT # if args.env == 'prod': ANSIBLE_HOSTS = PROD_HOST elif args.env == 'test': ANSIBLE_HOSTS = TEST_HOST # # TYPE # ANSIBLE_TAGS = args.type if len(ANSIBLE_TAGS) > 0: ANSIBLE_SKIP = list(set(TYPE_LIST) - set(ANSIBLE_TAGS)) # # ACTION # if args.env == 'prod': ANSIBLE_BOOK = PROD_BOOK elif args.env == 'test': ANSIBLE_BOOK = TEST_BOOK if args.action == 'update-phab': if args.env == 'prod': ANSIBLE_BOOK = 'books/update_prod.yml' elif args.env =='test': ANSIBLE_BOOK = 'books/update_test.yml' elif args.action == 'init': pass elif args.action == 'create': - ANSIBLE_SKIP.append('init') if args.env == 'prod': ANSIBLE_BOOK = 'books/openstack_prod.yml' elif args.env =='test': ANSIBLE_BOOK = 'books/openstack_test.yml' elif args.action == 'update': - ANSIBLE_SKIP.extend(['init', 'common']) + ANSIBLE_SKIP.extend(['common']) # # MAIN # command = [ANSIBLE, '--inventory-file', ANSIBLE_HOSTS] if len(ANSIBLE_TAGS) > 0: command.extend(['--tags', ','.join(ANSIBLE_TAGS)]) if len(ANSIBLE_SKIP) > 0: command.extend(['--skip-tags', ','.join(ANSIBLE_SKIP)]) command.extend([ANSIBLE_BOOK]) print ' '.join(command) + '\n' subprocess.call(command)