Skip to content

Instantly share code, notes, and snippets.

@shannonmitchell
Last active February 23, 2017 22:46
Show Gist options
  • Save shannonmitchell/61360c1960173cda34de95b68af0ff67 to your computer and use it in GitHub Desktop.
Save shannonmitchell/61360c1960173cda34de95b68af0ff67 to your computer and use it in GitHub Desktop.
##################################
# openstack-ansible config notes:
##################################
Some entries work with setup-hosts for network configuration and such and are never used after.
Everything else is just ansible variables that get used in all the playbook roles. Some are put
in inventory and others get pulled in via the openstack-ansible wrapper when running the playbooks.
################
# Config Files:
################
- /etc/openstack_deploy/openstack_user_config.yml and /etc/openstack_deploy/conf.d/*.yml:
-> These files are the main OSA config file used by the dynamic inventory generator to create an
ansible inventory
-> Anything dumped in the 'global_overrides:' section of this file goes into the dynamic inventory
under the 'all' group in the 'vars' variable.
-> Anything under 'container_vars:' under a specific host gets added to that host's variables in the
dynamic inventory. If the the service is a container and the host its in is a controller node
running lxc conatiners(ex: infra-1, network-1...). These container_vars will be available to all
containers in that host.
- /etc/openstack_deploy/env.d/*.yml and /opt/openstack-ansible/playbooks/inventory/env.d/:
-> These define ansible inventory groups and mappings as well as property variables that get
assigned to related host's hostvars.
-> under each '(component|continer)_skel:' section you have group names.
-> each group can assign parrent groups with 'belongs_to:' entries
-> each group can define children with 'contains:' entries
-> any variables defined in the 'properties:' sections gets assigned to host's metadata
falling in those groups
- /etc/openstack_deploy/user*.yml: These files are added to a call to ansible-playbook using
the '-e @filename' option. These variables overide all others defined elsewhere.
/etc/openstack_deploy/user_variables.yml: Configured by the admin before deploy. These are
yaml ansible variables used in roles for various services
/etc/openstack_deploy/user_secrets.yml: Generated by /opt/openstack-ansible/scripts/pw-token-gen.py
before OSA deployment.
#########
# Scope:
#########
- Anything defined in 'global_overrides:' entries goes into the inventory 'all' group at the
lowest level scope wise
- Anything defined in either 'container_vars:' openstack_user_config.yml/conf.d or 'properties:'
env.d entries are assigned to the hosts variables in inventory. These override the 'all' group.
- Anything defined in user_*.yml are defined as 'extra vars' with the '-e @varfile' ansible directive.
These trump everything in inventory.
ansible var docs: http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment