tripleo-quickstart-extras/roles/overcloud-prep-config
Bogdan Dobrelya 36569be28d Unify custom t-h-t install steps for UC/OC/upgrade
Allow undercloud installations/upgrades from custom t-h-t, similarly to
overcloud_templates_* et al.

Unify and share custom t-h-t install script for OC and UC and mixed
update/upgrade cases via new shared role tht-prep-config.

To diverge undercloud from overcloud install/update/upgrade cases, use
the following shared mappings (vars on the right correspond to UC
cases):

  * tht_templates_path: undercloud_templates_path (defaults to RPM dir)
  * tht_templates_repo: undercloud_templates_repo
  * tht_templates_branch: undercloud_templates_branch
  * tht_templates_refspec: undercloud_templates_refspec

and a 2nd group (defaults set to do nothing, but only disable the
t-h-t prepare script's code blocks under control of those):

  * composable_scenario:  undercloud_composable_scenario
  * upgrade_composable_scenario: undercloud_upgrade_composable_scenario
  * prep_post_hook_script: undercloud_prep_post_hook_script
  * download_templates_rpm: download_undercloud_templates_rpm
  * tht_rpm_url: undercloud_tht_rpm_url

Those in group 2 may be customized to mimic the overcloud mixed
upgrades logic for underclouds/all-in-one for future use.

And for overclouds respectively, use mappings:

  * composable_scenario: remains unchanged
  * upgrade_composable_scenario: remains unchanged
  * prep_post_hook_script: overcloud_prep_post_hook_script
  * download_templates_rpm: download_overcloud_templates_rpm
  * tht_rpm_url: remains unchanged
  * tht_templates_path: overcloud_templates_path
  ...

Related-bug: #1691467
Closes-bug: #1781227
Change-Id: I4e0dcf24b93b8e4afb8359cb5108c4b7b5ba3d55
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
2018-08-06 08:03:37 +00:00
..
defaults Unify custom t-h-t install steps for UC/OC/upgrade 2018-08-06 08:03:37 +00:00
meta Integrate undercloud_user var into oooq-extras 2017-01-18 09:32:16 -05:00
tasks Unify custom t-h-t install steps for UC/OC/upgrade 2018-08-06 08:03:37 +00:00
templates Unify custom t-h-t install steps for UC/OC/upgrade 2018-08-06 08:03:37 +00:00
README.md Add a hook to run a bash script at the end of the overcloud prep. 2018-02-21 23:10:01 +00:00

README.md

ansible-role-tripleo-overcloud-prep-config

An Ansible role to copy configuration files to the undercloud prior to overcloud deployment.

Requirements

This playbook expects that the undercloud has been installed and setup using one of the roles relevant to baremetal overcloud deployments.

Role Variables

Note: Make sure to include all environment file and options from your initial Overcloud creation.

  • working_dir: <'/home/{{ undercloud_user }}'> -- defined in roles/extras-common
  • baremetal_instackenv: <"{{ working_dir }}/instackenv.json"> -- location of instackenv.json to copy over
  • baremetal_network_environment: <"{{ working_dir }}/network-isolation.yml"> -- location of network-environment file to copy over
  • undercloud_type: -- can be overwritten with values like 'baremetal' or 'ovb'
  • extra_tht_configs: -- a list of files to copy to the overcloud and add as extra config to the overcloud-deployment command
  • network_isolation_type: single-nic-vlans, multiple-nics, bond-with-vlans, public-bond - type of network isolation to use (default: single-nic-vlans) [1] deprecated types - single_nic_vlans, bond_with_vlans, multi-nic
  • download_overcloud_templates_rpm: if set to true, allow the user to download a tripleo-heat-templates rpm package from a url defined by the variable tht_rpm_url
  • overcloud_templates_path: <'/usr/share/openstack-tripleo-heat-templates'> -- defined in roles/extras-common
  • overcloud_prep_post_hook_script: if set to a non-empty string, it should be the content of a bash script that will be run at the end of the overcloud preparation configuration step. This should only be use in rare case.

[1] Names are derived from the tripleo-heat-templates configuration <https://github.com/openstack/tripleo-heat-templates/tree/master/network/config>_

Role Network Variables

  • overcloud_dns_servers: -- a list of nameservers to be used for the overcloud nodes. These will result in the 'DnsServers' parameter in heat, and will be added to the network_environment_args (see below). Defaults to [ '{{ external_network_cidr|nthhost(1) }}' ]

The following variables are nested under network_environment_args. The values are calculated at run time using ansible jinja filters. This are, in turn, persisted to a heat environment file that is used in for the overcloud deployment.

Note: See additional documentation at http://docs.ansible.com/ansible/playbooks_filters_ipaddr.html and the ansible code base ansible/plugins/filter/ipaddr.py

network_environment_args:
  ExternalNetCidr: "{{ undercloud_external_network_cidr }}"
  ExternalAllocationPools: >
    [{'start': '{{ undercloud_external_network_cidr|nthhost(4) }}',
    'end': '{{ undercloud_external_network_cidr|nthhost(250) }}'}]
  NeutronExternalNetworkBridge: ""
  ControlPlaneSubnetCidr: "{{ undercloud_network_cidr|ipaddr('prefix') }}"
  ControlPlaneDefaultRoute: "{{ undercloud_network_cidr|nthhost(1) }}"
  EC2MetadataIp: "{{ undercloud_network_cidr|nthhost(1) }}"
  DnsServers: "{{ overcloud_dns_servers }}"

Dependencies

This playbook does not deploy the overcloud. After this playbook runs, call https://github.com/redhat-openstack/ansible-role-tripleo-overcloud.

Example Playbook

Sample playbook to call the role

- name: Copy configuration files
  hosts: undercloud
  roles:
    - ansible-role-tripleo-overcloud-prep-config

License

Apache 2.0

Author Information

RDO-CI Team