Skip to content

Commit

Permalink
ansible_play_batch (ansible#17779)
Browse files Browse the repository at this point in the history
* ansible_play_batch

* added version added
  • Loading branch information
bcoca authored Sep 28, 2016
1 parent 8cdf002 commit 86ea21a
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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"

Expand Down
8 changes: 7 additions & 1 deletion docsite/rst/playbooks_variables.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
1 change: 1 addition & 0 deletions lib/ansible/vars/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,7 @@ def _get_magic_variables(self, loader, play, host, task, include_hostvars, inclu
# 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
Expand Down

0 comments on commit 86ea21a

Please sign in to comment.