
Partial-Bug: #2070051 Change-Id: I03cdea3edf9b53cdce254c209997ed984e084b18 (cherry picked from commit ec4d03c3ba22923b1c8f9891799393402c4f52c0)
61 lines
2.4 KiB
YAML
61 lines
2.4 KiB
YAML
---
|
|
- name: Ensure localhost in /etc/hosts
|
|
lineinfile:
|
|
dest: /etc/hosts
|
|
regexp: "^127.0.0.1.*"
|
|
line: "127.0.0.1 localhost"
|
|
create: true
|
|
mode: 0644
|
|
state: present
|
|
become: True
|
|
|
|
# NOTE(mgoddard): Ubuntu may include a line in /etc/hosts that makes the local
|
|
# hostname and fqdn point to 127.0.1.1. This can break
|
|
# RabbitMQ, which expects the hostname to resolve to the API network address.
|
|
# Remove the troublesome entry.
|
|
# see https://bugs.launchpad.net/kolla-ansible/+bug/1837699
|
|
# and https://bugs.launchpad.net/kolla-ansible/+bug/1862739
|
|
- name: Ensure hostname does not point to 127.0.1.1 in /etc/hosts
|
|
lineinfile:
|
|
dest: /etc/hosts
|
|
regexp: "^127.0.1.1\\b.*\\s{{ ansible_facts.hostname }}\\b"
|
|
state: absent
|
|
become: True
|
|
|
|
- name: Generate /etc/hosts for all of the nodes
|
|
blockinfile:
|
|
dest: /etc/hosts
|
|
marker: "# {mark} ANSIBLE GENERATED HOSTS"
|
|
block: |
|
|
{% for host in groups['baremetal'] %}
|
|
{% set api_interface = (hostvars[host]['api_interface'] | replace('-', '_')) %}
|
|
{% if host not in groups['bifrost'] or api_interface in hostvars[host].ansible_facts %}
|
|
{% set hostnames = [hostvars[host].ansible_facts.nodename, hostvars[host].ansible_facts.hostname] %}
|
|
{{ 'api' | kolla_address(host) }} {{ hostnames | unique | join(' ') }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
become: True
|
|
when:
|
|
# Skip hosts in the bifrost group that do not have a valid api_interface.
|
|
- inventory_hostname not in groups['bifrost'] or
|
|
hostvars[inventory_hostname]['api_interface'] | replace('-', '_') in hostvars[inventory_hostname].ansible_facts
|
|
|
|
# NOTE(osmanlicilegi): The distribution might come with cloud-init installed, and manage_etc_hosts
|
|
# configuration enabled. If so, it will override the file /etc/hosts from cloud-init templates at
|
|
# every boot, which will break RabbitMQ. To prevent this happens, first we check whether cloud-init
|
|
# has been installed, and then set manage_etc_hosts to false.
|
|
- name: Check whether cloud-init has been installed, and ensure manage_etc_hosts is disabled
|
|
block:
|
|
- name: Check whether /etc/cloud/cloud.cfg exists
|
|
stat:
|
|
path: /etc/cloud/cloud.cfg
|
|
register: cloud_init
|
|
|
|
- name: Disable cloud-init manage_etc_hosts
|
|
copy:
|
|
content: "manage_etc_hosts: false"
|
|
dest: /etc/cloud/cloud.cfg.d/99-kolla.cfg
|
|
mode: "0660"
|
|
when: cloud_init.stat.exists
|
|
become: True
|