tripleo-quickstart-extras/roles/overcloud-prep-config
Bogdan Dobrelya f2114bab76 Custom containerized undercloud deployments
* Parametrize network settings for undercloud deploy to align with
  the undercloud install's undercloud.conf and nova-join's DNS
  config steps.
* Move the undercloud nameservers defaults to the extras-common.
* Support extra deploy args for 'openstack undercloud deploy'.
  Defaults to the heat-native mode, may be altered to containerized
  heat-all agents, and other args like keep-running, if wanted.
* Support custom t-h-t templates for underclouds as well (shares
  the custom t-h-t script and vars with the overcloud-prep-config)
* Template prerequisite packages installed by the
  undercloud-install.sh script. These should be moved to the
  tripleoclient's 'openstack undercloud deploy', eventually.
* Allow requested dev env packages to be updated by the
  undercloud-install.sh script (defaults to update nothing,
  which is backwards compatible). Note, this has nothing to the
  prerequisite packages.
* Document missing variables for the undercloud-deploy role.
* Document hacking dev branches for customized underclouds.

Related-bug: #1691467
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
Change-Id: Id32f492369dc74428bde8c4120308279cbba53fc
2017-06-07 11:04:56 +02:00
..
defaults Use overcloud_templates_path variable defines in extras-common 2017-05-17 15:37:42 -04:00
meta Integrate undercloud_user var into oooq-extras 2017-01-18 09:32:16 -05:00
tasks Custom containerized undercloud deployments 2017-06-07 11:04:56 +02:00
templates Move OVB settings to tripleo-quickstart-extras 2017-05-15 20:53:28 -04:00
README.md Use overcloud_templates_path variable defines in extras-common 2017-05-17 15:37:42 -04: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

[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