diff --git a/examples/playbook.yml b/examples/playbook.yml index 8a4cf19aef..0866dd2392 100644 --- a/examples/playbook.yml +++ b/examples/playbook.yml @@ -1,5 +1,9 @@ - pattern: '*' tasks: + - do: + - configure template & module variables + - setup + - [ "a=2", "b=3", "c=4" ] - do: - update apache - command diff --git a/library/setup b/library/setup new file mode 100755 index 0000000000..77cc1c2300 --- /dev/null +++ b/library/setup @@ -0,0 +1,56 @@ +#!/usr/bin/python + +ANSIBLE_DIR = "/etc/ansible" +ANSIBLE_SETUP = "/etc/ansible/setup" +ANSIBLE_TEMPLATES = "/srv/ansible/templates" + +import sys +import os +import shlex + +try: + import json +except ImportError: + import simplejson as json + +# load config & template variables + +input_data = sys.argv[1:] +new_options = dict([ x.split("=") for x in input_data ]) + +# make a directory to store templates +# if it does not already exist + +if not os.path.exists(ANSIBLE_TEMPLATES): + os.makedirs(ANSIBLE_TEMPLATES) + +# create the config dir if it doesn't exist + +if not os.path.exists(ANSIBLE_DIR): + os.makedirs(ANSIBLE_DIR) + +changed = False +if not os.path.exists(ANSIBLE_SETUP): + changed = True +else: + md5sum = os.popen("md5sum %s" % ANSIBLE_SETUP).read() + +# write the template/settings file using +# instructions from server + +f = open(ANSIBLE_SETUP, "w+") +reformat = json.dumps(new_options) +f.write(reformat) +f.close() + +md5sum2 = os.popen("md5sum %s" % ANSIBLE_SETUP).read() + +if md5sum != md5sum2: + changed = True + +result = { + "changed" : changed, + "md5sum" : md5sum +} + +print json.dumps(result)