ansible_play_batch (#17779)

* ansible_play_batch

* added version added
This commit is contained in:
Brian Coca 2016-09-28 10:32:19 -04:00 committed by GitHub
parent 8cdf002f2a
commit 86ea21a73d
3 changed files with 10 additions and 1 deletions

View file

@ -249,6 +249,7 @@ Ansible Changes By Release
* Only check if the default ssh client supports ControlPersist once instead of once for each host + task combination.
* Fix a problem with the pip module updating the python pip package itself.
* ansible_play_hosts is a new magic variable to provide a list of hosts in scope for the current play. Unlike play_hosts it is not subject to the 'serial' keyword.
* ansible_play_batch is a new magic variable meant to substitute the current play_hosts.
###For custom front ends using the API:
* ansible.parsing.vault:
@ -481,6 +482,7 @@ Notice given that the following will be removed in Ansible 2.4:
* Deprecated the use of "bare" variables in loops (ie. `with_items: foo`, where `foo` is a variable).
The full jinja2 variable syntax of `{{foo}}` should always be used instead. This warning will be removed
completely in 2.3, after which time it will be an error.
* play_hosts magic variable, use ansible_play_batch or ansible_play_hosts instead.
## 2.0.2 "Over the Hills and Far Away"

View file

@ -673,8 +673,14 @@ be useful for when you don't want to rely on the discovered hostname ``ansible_h
reasons. If you have a long FQDN, ``inventory_hostname_short`` also contains the part up to the first
period, without the rest of the domain.
``play_hosts`` has been deprecated in 2.2, it was the same as the new ``ansible_play_batch`` variable.
.. versionadded:: 2.2
``ansible_play_hosts`` is the full list of all hosts still active in the current play.
``play_hosts`` is available as a list of hostnames that are in scope for the current 'batch' of the play. The batch size is defined by ``serial``, when not set it is equivalent to the whole play (making it the same as ``ansible_play_hosts``).
.. versionadded:: 2.2
``ansible_play_batch`` is available as a list of hostnames that are in scope for the current 'batch' of the play. The batch size is defined by ``serial``, when not set it is equivalent to the whole play (making it the same as ``ansible_play_hosts``).
These vars may be useful for filling out templates with multiple hostnames or for injecting the list into the rules for a load balancer.
Don't worry about any of this unless you think you need it. You'll know when you do.

View file

@ -414,6 +414,7 @@ class VariableManager:
# however this would take work in the templating engine, so for now
# we'll add both so we can give users something transitional to use
variables['play_hosts'] = [x.name for x in self._inventory.get_hosts()]
variables['ansible_play_batch'] = [x.name for x in self._inventory.get_hosts()]
variables['ansible_play_hosts'] = [x.name for x in self._inventory.get_hosts(pattern=play.hosts or 'all', ignore_restrictions=True)]
# the 'omit' value alows params to be left out if the variable they are based on is undefined