tripleo-quickstart-extras/roles/overcloud-prep-config
Sandeep Yadav 22e056fd36 Allow Override default network_data/vip yaml
With this change we are adding capability to create custom
baremetal environment specific yaml templates:-

* network_data.yaml
* vip_data.yaml

Above files will be created using the var `network_data_details` and
`network_vip_details` defined in downstream env_setting.yml(details
about env_setting.yml in [1])

Also, Updating `overcloud-deploy` role to parameterize the location of
network_data.yaml and vip_data.yaml file, this will help override the
default location.

[1] https://opendev.org/openstack/ansible-role-collect-logs/src/branch/master/docs/static/baremetal-overcloud/environment-settings-structure.rst

Change-Id: Ibfbe2d2af8372f47f6e6a31ca821bfb314ce347f
2021-09-08 13:33:36 +05:30
..
defaults Allow Override default network_data/vip yaml 2021-09-08 13:33:36 +05:30
meta Adopt yamllint strict linting 2018-11-26 12:37:21 +00:00
tasks Allow Override default network_data/vip yaml 2021-09-08 13:33:36 +05:30
templates lint: enabled whitespace fixes 2020-01-05 14:07:37 +00:00
README.md Move 'extra_tht_configs' tasks to overcloud-deploy role 2019-06-07 16:29:27 +05:30

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'
  • 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