Define, when possible, the inventory_dir variable
This commit is contained in:
parent
92997ec789
commit
abe126fbd8
4 changed files with 14 additions and 4 deletions
|
@ -141,6 +141,8 @@ period, without the rest of the domain.
|
||||||
|
|
||||||
Don't worry about any of this unless you think you need it. You'll know when you do.
|
Don't worry about any of this unless you think you need it. You'll know when you do.
|
||||||
|
|
||||||
|
Also available, *inventory_dir* is the pathname of the directory holding Ansible's inventory host file.
|
||||||
|
|
||||||
Variable File Separation
|
Variable File Separation
|
||||||
````````````````````````
|
````````````````````````
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,10 @@ class PlayBook(object):
|
||||||
self.inventory = inventory
|
self.inventory = inventory
|
||||||
|
|
||||||
self.basedir = os.path.dirname(playbook) or '.'
|
self.basedir = os.path.dirname(playbook) or '.'
|
||||||
(self.playbook, self.play_basedirs) = self._load_playbook_from_file(playbook)
|
vars = {}
|
||||||
|
if self.inventory.basedir() is not None:
|
||||||
|
vars['inventory_dir'] = self.inventory.basedir()
|
||||||
|
(self.playbook, self.play_basedirs) = self._load_playbook_from_file(playbook, vars)
|
||||||
|
|
||||||
# *****************************************************
|
# *****************************************************
|
||||||
|
|
||||||
|
@ -171,7 +174,7 @@ class PlayBook(object):
|
||||||
for t in tokens[1:]:
|
for t in tokens[1:]:
|
||||||
(k,v) = t.split("=", 1)
|
(k,v) = t.split("=", 1)
|
||||||
incvars[k] = utils.template(basedir, v, incvars)
|
incvars[k] = utils.template(basedir, v, incvars)
|
||||||
included_path = utils.path_dwim(basedir, tokens[0])
|
included_path = utils.path_dwim(basedir, utils.template(basedir, tokens[0], incvars))
|
||||||
(plays, basedirs) = self._load_playbook_from_file(included_path, incvars)
|
(plays, basedirs) = self._load_playbook_from_file(included_path, incvars)
|
||||||
for p in plays:
|
for p in plays:
|
||||||
if 'vars' not in p:
|
if 'vars' not in p:
|
||||||
|
|
|
@ -80,8 +80,11 @@ class Play(object):
|
||||||
|
|
||||||
self._update_vars_files_for_host(None)
|
self._update_vars_files_for_host(None)
|
||||||
|
|
||||||
self._tasks = self._load_tasks(self._ds.get('tasks', []))
|
load_vars = {}
|
||||||
self._handlers = self._load_tasks(self._ds.get('handlers', []))
|
if self.playbook.inventory.basedir() is not None:
|
||||||
|
load_vars['inventory_dir'] = self.playbook.inventory.basedir();
|
||||||
|
self._tasks = self._load_tasks(self._ds.get('tasks', []), load_vars)
|
||||||
|
self._handlers = self._load_tasks(self._ds.get('handlers', []), load_vars)
|
||||||
|
|
||||||
if self.tags is None:
|
if self.tags is None:
|
||||||
self.tags = []
|
self.tags = []
|
||||||
|
|
|
@ -337,6 +337,8 @@ class Runner(object):
|
||||||
inject['hostvars'] = HostVars(self.setup_cache, self.inventory)
|
inject['hostvars'] = HostVars(self.setup_cache, self.inventory)
|
||||||
inject['group_names'] = host_variables.get('group_names', [])
|
inject['group_names'] = host_variables.get('group_names', [])
|
||||||
inject['groups'] = self.inventory.groups_list()
|
inject['groups'] = self.inventory.groups_list()
|
||||||
|
if self.inventory.basedir() is not None:
|
||||||
|
inject['inventory_dir'] = self.inventory.basedir()
|
||||||
|
|
||||||
# allow with_foo to work in playbooks...
|
# allow with_foo to work in playbooks...
|
||||||
items = None
|
items = None
|
||||||
|
|
Loading…
Reference in a new issue