---

# this is an example of how we can perform actions on a given host on behalf of all the hosts
# in a play.  
#
# The two main uses of this would be signalling an outage window for hosts that
# we are going to start upgrading, or to take a machine out of rotation by talking to a load
# balancer.   
#
# This example cheats by replacing the load balancer script with the 'echo' command,
# leaving actual communication with the load balancer as an exercise to the reader.  In reality,
# you could call anything you want, the main thing is that it should do something with 
# $inventory_hostname

# NOTE: see batch_size_control.yml for an example of the 'serial' keyword, which you almost certainly
# want to use in this kind of example.  Here we have a mocked up example that does something to
# 5 hosts at a time

- hosts: all
  serial: 5

  tasks:
  
  - name: take the machine out of rotation
    action: command echo taking out of rotation $inventory_hostname
    delegate_to: 127.0.0.1

# here's an alternate notation if you are delegating to 127.0.0.1, you can use 'local_action' 
# instead of 'action' and leave off the 'delegate_to' part.
#
# - local_action: command echo taking out of rotation $inventory_hostname

  - name: do several things on the actual host
    action: command echo hi mom $inventory_hostname
  
  - name: put machine back into rotation
    action: command echo inserting into rotation $inventory_hostname
    delegate_to: 127.0.0.1

