--- ############################################################################### # 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 - 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_distribution_major_version|int <= 7 - name: install python3 tripleoclient package: name: python3-tripleoclient state: present become: true when: ansible_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 }}"