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. * 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. * 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_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: ###For custom front ends using the API:
* ansible.parsing.vault: * 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). * 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 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. 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" ## 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 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. 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. ``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. 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. 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 # 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 # 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['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)] 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 # the 'omit' value alows params to be left out if the variable they are based on is undefined