---
- name: Apply role baremetal
  hosts: baremetal
  gather_facts: no
  roles:
    - { role: baremetal,
        tags: baremetal }


---
# NOTE(awiddersheim): Gather facts for all hosts as a
# first step since several plays below require them when
# building their configurations. The below 'gather_facts'
# set to 'false' is a bit confusing but this is to avoid
# Ansible gathering facts twice.
- name: Gather facts for all hosts
  hosts: all
  serial: '{{ serial|default("0") }}'
  gather_facts: false
  tasks:
    - setup:
  tags: always

# NOTE(pbourke): This case covers deploying subsets of hosts using --limit. The
# limit arg will cause the first play to gather facts only about that node,
# meaning facts such as IP addresses for rabbitmq nodes etc. will be undefined
# in the case of adding a single compute node.
# We don't want to add the delegate parameters to the above play as it will
# result in ((num_nodes-1)^2) number of SSHs when running for all nodes
# which can be very inefficient.
- name: Gather facts for all hosts (if using --limit)
  hosts: all
  serial: '{{ serial|default("0") }}'
  gather_facts: false
  tasks:
    - setup:
      delegate_facts: True
      delegate_to: "{{ item }}"
      with_items: "{{ groups['all'] }}"
      when:
        - (ansible_play_batch | length) != (groups['all'] | length)

- name: Apply role baremetal
  hosts: baremetal
  gather_facts: no
  roles:
    - { role: baremetal,
        tags: baremetal }


Enable use of --limit when using bootstrap-servers
Enable use of --limit when using bootstrap-servers

The ansible/kolla-host.yml playbook failed when called with a --limit
flag.

This was due to the fact that only the facts of the subset of hosts
were gathered but the "Generate /etc/hosts for all of the nodes" task
is using the ansible_<IFACE>.ipv4.address variable of all hosts.

The code for this fix is copied from the site.yml playbook
where it was used for the same reason.

Change-Id: I7e70caf750506ad8ab36ec024bd9647dd733fbd0
Closes-Bug: #1713725
