Merge "RFC1034/5 hostname upgrade"

This commit is contained in:
Jenkins 2016-06-07 16:56:16 +00:00 committed by Gerrit Code Review
commit b6c12aaade
6 changed files with 176 additions and 0 deletions

View File

@ -122,6 +122,16 @@ See :ref:`repo-server-pip-conf-removal` for more details.
# openstack-ansible "${UPGRADE_PLAYBOOKS}/repo-server-pip-conf-removal.yml"
Ensure hostname aliases are created for non-RFC1034/35 hostnames
----------------------------------------------------------------
Ensure an alias is created for non-RFC1034/35 hostnames.
See :ref:`old-hostname-compatibility` for details.
.. code-block:: console
# openstack-ansible "${UPGRADE_PLAYBOOKS}/old-hostname-compatibility.yml"
Upgrade infrastructure
~~~~~~~~~~~~~~~~~~~~~~

View File

@ -40,6 +40,17 @@ dependency, causing build failures.
.. _repo-server-pip-conf-removal:
``old-hostname-compatibility.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This playbook ensures an alias is created for old hostnames that may not be RFC
1034 or 1035 compatible. Using a hostname alias allows agents to continue working
in cases where the hostname is also the registered agent name. This playbook is
only needed for upgrades of in-place upgrades of existing nodes or if a node is replaced or
rebuilt it will be brought into the cluster using a compliant hostname.
.. _old-hostname-compatibility:
``setup-infrastructure.yml``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -89,6 +89,10 @@ apply_security_hardening: true
## Region Name
service_region: RegionOne
## OpenStack Domain
openstack_domain: openstack.local
lxc_container_domain: "{{ openstack_domain }}"
## DHCP Domain Name
dhcp_domain: openstacklocal

View File

@ -0,0 +1,5 @@
---
upgrade:
- A new global variable has been created named
``openstack_domain``. This variable has a default
value of "openstack.local".

View File

@ -147,6 +147,7 @@ function main {
RUN_TASKS+=("setup-hosts.yml --limit '!galera_all[0]'")
RUN_TASKS+=("lxc-containers-create.yml --limit galera_all[0]")
RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/repo-server-pip-conf-removal.yml")
RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/old-hostname-compatibility.yml")
RUN_TASKS+=("setup-infrastructure.yml -e 'galera_upgrade=true' -e 'rabbitmq_upgrade=true'")
RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/memcached-flush.yml")
RUN_TASKS+=("setup-openstack.yml")

View File

@ -0,0 +1,145 @@
---
# Copyright 2016, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Set hostname alias for local lookup compatibility
hosts: all
gather_facts: true
tasks:
- name: Update Alias hostnames
lineinfile:
dest: /etc/hosts
insertafter: "^127.0.0.1"
regexp: "^127.0.1.1"
line: "127.0.1.1 {{ rfc_1034_1035_name }}.{{ domain_name }} {{ rfc_1034_1035_name }} {{ inventory_hostname }} {{ ansible_hostname }}"
state: present
register: result1
when:
- rfc_1034_1035_name != inventory_hostname
- rfc_1034_1035_name != ansible_hostname
- name: Update Alias hostnames
lineinfile:
dest: /etc/hosts
insertafter: "^127.0.0.1"
regexp: "^127.0.1.1"
line: "127.0.1.1 {{ rfc_1034_1035_name }}.{{ domain_name }} {{ rfc_1034_1035_name }} {{ ansible_hostname }}"
state: present
register: result2
when:
- rfc_1034_1035_name == inventory_hostname
- rfc_1034_1035_name != ansible_hostname
- name: Update Alias hostnames
lineinfile:
dest: /etc/hosts
insertafter: "^127.0.0.1"
regexp: "^127.0.1.1"
line: "127.0.1.1 {{ rfc_1034_1035_name }}.{{ domain_name }} {{ rfc_1034_1035_name }} {{ inventory_hostname }}"
state: present
when:
- result1 | skipped
- result2 | skipped
vars:
rfc_1034_1035_name: "{{ inventory_hostname | replace('_', '-') }}"
domain_name: "{{ openstack_domain|default('openstack.local') }}"
- name: Set hostnames alias for RabbitMQ lookup compatibility
hosts: rabbitmq_all
tasks:
- name: Update hosts file from ansible inventory
lineinfile:
dest: /etc/hosts
regexp: "^{{ hostvars[item]['ansible_ssh_host'] }}"
line: "{{ hostvars[item]['ansible_ssh_host'] }} {{ rfc_1034_1035_name }}.{{ domain_name }} {{ rfc_1034_1035_name }} {{ item }}"
state: present
when: item != inventory_hostname
with_items: "{{ play_hosts }}"
vars:
rfc_1034_1035_name: "{{ item | replace('_', '-') }}"
domain_name: "{{ openstack_domain|default('openstack.local') }}"
- name: Set hostnames alias for MariaDB lookup compatibility
hosts: galera_all
tasks:
- name: Update hosts file from ansible inventory
lineinfile:
dest: /etc/hosts
regexp: "^{{ hostvars[item]['ansible_ssh_host'] }}"
line: "{{ hostvars[item]['ansible_ssh_host'] }} {{ rfc_1034_1035_name }}.{{ domain_name }} {{ rfc_1034_1035_name }} {{ item }}"
state: present
when: item != inventory_hostname
with_items: "{{ play_hosts }}"
vars:
rfc_1034_1035_name: "{{ item | replace('_', '-') }}"
domain_name: "{{ openstack_domain|default('openstack.local') }}"
- name: Set hostnames alias for Neutron Agent lookup compatibility
hosts: neutron_all:!nova_compute
tasks:
- name: Update hosts file from ansible inventory
lineinfile:
dest: /etc/hosts
regexp: "^{{ hostvars[item]['ansible_ssh_host'] }}"
line: "{{ hostvars[item]['ansible_ssh_host'] }} {{ rfc_1034_1035_name }}.{{ domain_name }} {{ rfc_1034_1035_name }} {{ item }}"
state: present
when: item != inventory_hostname
with_items: "{{ play_hosts }}"
vars:
rfc_1034_1035_name: "{{ item | replace('_', '-') }}"
domain_name: "{{ openstack_domain|default('openstack.local') }}"
- name: Set hostnames alias for Cinder lookup compatibility
hosts: cinder_all
tasks:
- name: Update hosts file from ansible inventory
lineinfile:
dest: /etc/hosts
regexp: "^{{ hostvars[item]['ansible_ssh_host'] }}"
line: "{{ hostvars[item]['ansible_ssh_host'] }} {{ rfc_1034_1035_name }}.{{ domain_name }} {{ rfc_1034_1035_name }} {{ item }}"
state: present
when: item != inventory_hostname
with_items: "{{ play_hosts }}"
vars:
rfc_1034_1035_name: "{{ item | replace('_', '-') }}"
domain_name: "{{ openstack_domain|default('openstack.local') }}"
- name: Set hostnames alias for Heat lookup compatibility
hosts: heat_all
tasks:
- name: Update hosts file from ansible inventory
lineinfile:
dest: /etc/hosts
regexp: "^{{ hostvars[item]['ansible_ssh_host'] }}"
line: "{{ hostvars[item]['ansible_ssh_host'] }} {{ rfc_1034_1035_name }}.{{ domain_name }} {{ rfc_1034_1035_name }} {{ item }}"
state: present
when: item != inventory_hostname
with_items: "{{ play_hosts }}"
vars:
rfc_1034_1035_name: "{{ item | replace('_', '-') }}"
domain_name: "{{ openstack_domain|default('openstack.local') }}"
- name: Set hostnames alias for Nova Sevice lookup compatibility
hosts: nova_all:!nova_compute
tasks:
- name: Update hosts file from ansible inventory
lineinfile:
dest: /etc/hosts
regexp: "^{{ hostvars[item]['ansible_ssh_host'] }}"
line: "{{ hostvars[item]['ansible_ssh_host'] }} {{ rfc_1034_1035_name }}.{{ domain_name }} {{ rfc_1034_1035_name }} {{ item }}"
state: present
when:
- item != inventory_hostname
with_items: "{{ play_hosts }}"
vars:
rfc_1034_1035_name: "{{ item | replace('_', '-') }}"
domain_name: "{{ openstack_domain|default('openstack.local') }}"