Allow role variables to be optionally kept in a private scope
This commit is contained in:
parent
a155f65a89
commit
b6c52ce115
3 changed files with 10 additions and 2 deletions
|
@ -71,6 +71,11 @@ timeout = 10
|
||||||
# this can also be set to 'merge'.
|
# this can also be set to 'merge'.
|
||||||
#hash_behaviour = replace
|
#hash_behaviour = replace
|
||||||
|
|
||||||
|
# by default, variables from roles will be visible in the global variable
|
||||||
|
# scope. To prevent this, the following option can be enabled, and only
|
||||||
|
# tasks and handlers within the role will see the variables there
|
||||||
|
#private_role_vars = yes
|
||||||
|
|
||||||
# list any Jinja2 extensions to enable here:
|
# list any Jinja2 extensions to enable here:
|
||||||
#jinja2_extensions = jinja2.ext.do,jinja2.ext.i18n
|
#jinja2_extensions = jinja2.ext.do,jinja2.ext.i18n
|
||||||
|
|
||||||
|
|
|
@ -129,6 +129,7 @@ DEFAULT_MANAGED_STR = get_config(p, DEFAULTS, 'ansible_managed', None,
|
||||||
DEFAULT_SYSLOG_FACILITY = get_config(p, DEFAULTS, 'syslog_facility', 'ANSIBLE_SYSLOG_FACILITY', 'LOG_USER')
|
DEFAULT_SYSLOG_FACILITY = get_config(p, DEFAULTS, 'syslog_facility', 'ANSIBLE_SYSLOG_FACILITY', 'LOG_USER')
|
||||||
DEFAULT_KEEP_REMOTE_FILES = get_config(p, DEFAULTS, 'keep_remote_files', 'ANSIBLE_KEEP_REMOTE_FILES', False, boolean=True)
|
DEFAULT_KEEP_REMOTE_FILES = get_config(p, DEFAULTS, 'keep_remote_files', 'ANSIBLE_KEEP_REMOTE_FILES', False, boolean=True)
|
||||||
DEFAULT_HASH_BEHAVIOUR = get_config(p, DEFAULTS, 'hash_behaviour', 'ANSIBLE_HASH_BEHAVIOUR', 'replace')
|
DEFAULT_HASH_BEHAVIOUR = get_config(p, DEFAULTS, 'hash_behaviour', 'ANSIBLE_HASH_BEHAVIOUR', 'replace')
|
||||||
|
DEFAULT_PRIVATE_ROLE_VARS = get_config(p, DEFAULTS, 'private_role_vars', 'ANSIBLE_PRIVATE_ROLE_VARS', False, boolean=True)
|
||||||
DEFAULT_JINJA2_EXTENSIONS = get_config(p, DEFAULTS, 'jinja2_extensions', 'ANSIBLE_JINJA2_EXTENSIONS', None)
|
DEFAULT_JINJA2_EXTENSIONS = get_config(p, DEFAULTS, 'jinja2_extensions', 'ANSIBLE_JINJA2_EXTENSIONS', None)
|
||||||
DEFAULT_EXECUTABLE = get_config(p, DEFAULTS, 'executable', 'ANSIBLE_EXECUTABLE', '/bin/sh')
|
DEFAULT_EXECUTABLE = get_config(p, DEFAULTS, 'executable', 'ANSIBLE_EXECUTABLE', '/bin/sh')
|
||||||
DEFAULT_GATHERING = get_config(p, DEFAULTS, 'gathering', 'ANSIBLE_GATHERING', 'implicit').lower()
|
DEFAULT_GATHERING = get_config(p, DEFAULTS, 'gathering', 'ANSIBLE_GATHERING', 'implicit').lower()
|
||||||
|
|
|
@ -197,8 +197,10 @@ class VariableManager:
|
||||||
# whether or not vars files errors should be fatal at this
|
# whether or not vars files errors should be fatal at this
|
||||||
# stage, or just base it on whether a host was specified?
|
# stage, or just base it on whether a host was specified?
|
||||||
pass
|
pass
|
||||||
for role in play.get_roles():
|
|
||||||
all_vars = self._combine_vars(all_vars, role.get_vars())
|
if not C.DEFAULT_PRIVATE_ROLE_VARS:
|
||||||
|
for role in play.get_roles():
|
||||||
|
all_vars = self._combine_vars(all_vars, role.get_vars())
|
||||||
|
|
||||||
if host:
|
if host:
|
||||||
all_vars = self._combine_vars(all_vars, self._vars_cache.get(host.get_name(), dict()))
|
all_vars = self._combine_vars(all_vars, self._vars_cache.get(host.get_name(), dict()))
|
||||||
|
|
Loading…
Reference in a new issue