4b60170a31
Our example playbooks have tripleo_repos defined however if they are run on RHEL boxes this fails. Let's limit the tripleo_repos to just centos for now. Additionally switch to use ansible_facts for distribution version information as well. Change-Id: Ib9dc4219254b1afc9eb6b4e35099b1b3649930a7
105 lines
3.4 KiB
YAML
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 }}"
|