tripleo-operator-ansible/playbooks/undercloud.yml

105 lines
3.4 KiB
YAML

---
###############################################################################
# Undercloud installation playbook
#
# Description:
# This is a basic playbook to install a simple undercloud on an already
# provisioned system.
#
###############################################################################
- hosts: undercloud
collections:
- tripleo.operator
vars:
install_debug: true
undercloud_hostname: 'undercloud.localdomain'
undercloud_local_mtu: 1400
undercloud_local_interface: eth1
undercloud_enable_selinux: false
tasks:
- name: Set hostname
hostname:
name: "{{ undercloud_hostname }}"
become: true
- name: Configure tripleo repositories
include_role:
name: tripleo_repos
when:
- ansible_facts.distribution == 'CentOS'
- name: Ensure system is up to date
yum:
name: '*'
state: latest # noqa 403
register: packages_updated
become: true
- name: Reboot if necessary
reboot:
become: true
when: packages_updated is changed
- name: Install tripleoclient
block:
- name: install python2 tripleoclient
yum:
name: python-tripleoclient
state: installed
become: true
when: ansible_facts.distribution_major_version|int <= 7
- name: install python3 tripleoclient
package:
name: python3-tripleoclient
state: present
become: true
when: ansible_facts.distribution_major_version|int >= 8
- name: Copy sample undercloud.conf
copy:
src: /usr/share/python-tripleoclient/undercloud.conf.sample
dest: "{{ ansible_env.HOME }}/undercloud.conf"
remote_src: true
mode: '0644'
- name: Configure undercloud.conf
ini_file:
path: "{{ ansible_env.HOME }}/undercloud.conf"
section: "{{ item.section }}"
option: "{{ item.option }}"
value: "{{ item.value }}"
mode: '0644'
loop:
- {'section': 'DEFAULT', 'option': 'undercloud_debug', 'value': "{{ install_debug }}"}
- {'section': 'DEFAULT', 'option': 'local_mtu', 'value': "{{ undercloud_local_mtu }}"}
- {'section': 'DEFAULT', 'option': 'local_interface', 'value': "{{ undercloud_local_interface }}"}
- {'section': 'DEFAULT', 'option': 'undercloud_enable_selinux', 'value': "{{ undercloud_enable_selinux }}"}
- {'section': 'ctlplane-subnet', 'option': 'masquerade', 'value': 'true'}
# Example configuration copy/modification with config_template module
# (https://opendev.org/openstack/ansible-config_template)
#
# - name: Configure undercloud.conf
# config_template:
# src: /usr/share/python-tripleoclient/undercloud.conf.sample
# dest: "{{ ansible_env.HOME }}/undercloud.conf"
# remote_src: true
# render_template: false
# config_type: ini
# config_overrides:
# 'DEFAULT':
# undercloud_debug: "{{ install_debug }}"
# local_mtu: "{{ undercloud_local_mtu }}"
# local_interface: "{{ undercloud_local_interface }}"
# undercloud_enable_selinux: "{{ undercloud_enable_selinux }}"
# 'ctlplane-subnet':
# masquerade: true
- name: Install undercloud
include_role:
name: tripleo_undercloud_install
vars:
tripleo_undercloud_install_debug: "{{ install_debug }}"