ansible-playbook can load extra vars from a file, with "@" syntax

This commit is contained in:
Alan Descoins 2013-07-23 19:39:39 -03:00
parent d1effecb2e
commit c19c2c7295

View file

@ -94,10 +94,20 @@ def main(args):
options.ask_sudo_pass = options.ask_sudo_pass or C.DEFAULT_ASK_SUDO_PASS options.ask_sudo_pass = options.ask_sudo_pass or C.DEFAULT_ASK_SUDO_PASS
( sshpass, sudopass ) = utils.ask_passwords(ask_pass=options.ask_pass, ask_sudo_pass=options.ask_sudo_pass) ( sshpass, sudopass ) = utils.ask_passwords(ask_pass=options.ask_pass, ask_sudo_pass=options.ask_sudo_pass)
options.sudo_user = options.sudo_user or C.DEFAULT_SUDO_USER options.sudo_user = options.sudo_user or C.DEFAULT_SUDO_USER
if options.extra_vars and options.extra_vars[0] in '[{':
extra_vars = utils.json_loads(options.extra_vars) extra_vars = {}
else: if options.extra_vars:
extra_vars = utils.parse_kv(options.extra_vars) if options.extra_vars.startswith("@"):
# Argument is a JSON file
with open(options.extra_vars[1:]) as fd:
extra_vars = utils.json_loads(fd.read())
elif options.extra_vars[0] in '[{':
# Arguments as JSON
extra_vars = utils.json_loads(options.extra_vars)
else:
# Arguments as Key-value
extra_vars = utils.parse_kv(options.extra_vars)
only_tags = options.tags.split(",") only_tags = options.tags.split(",")
skip_tags = options.skip_tags skip_tags = options.skip_tags
if options.skip_tags is not None: if options.skip_tags is not None: