Andy McCrae 856f38ccfc Default the variable if the group doesn't exist
We have situations where configuration files require host settings, but
they don't require the host_group. For example, nova requires ironic
variables but not ironic, or keystone with rabbitmq etc.

To prevent a situation where we require a host just to get the IP, or a
situation where we have to override the variable inside each role - lets
check if the group exists and set the variable accordingly.

Additionally, to prevent having to set the same long hostvar each time,
we can set that at the top of each "group" variables and then set those
variables appropriately.

Change-Id: I60d4079e913690069b5c44b83019a171dd3e4593
2016-09-27 21:58:41 +01:00
2016-09-16 17:07:15 +01:00
2016-09-23 16:04:36 +01:00
2016-09-16 21:19:23 -05:00
2016-09-09 10:58:01 +01:00
2016-05-26 11:33:41 +01:00
2016-09-16 17:07:15 +01:00
2016-05-20 14:53:54 +01:00
2016-09-23 16:04:36 +01:00

OpenStack-Ansible testing

This is the openstack-ansible-tests repository, providing a framework and consolidation of testing configuration and playbooks. This can be used to integrate new projects, and ensure that code duplication is minimized whilst allowing the addition of new testing scenarios with greater ease.

Roles Currently using the openstack-ansible-tests repository

  • openstack-ansible-galera_server
  • openstack-ansible-tests
  • openstack-ansible-os_rally
  • openstack-ansible-memcached_server
  • openstack-ansible-openstack_hosts
  • openstack-ansible-repo_build
  • openstack-ansible-repo_server
  • openstack-ansible-lxc_container_create
  • openstack-ansible-os_keystone
  • openstack-ansible-os_aodh
  • openstack-ansible-os_zaqar

Variables are generic and based on inventory so variable overrides should be able to be very minimal.

Role Integration

To enable the openstack-ansible-tests repository add the following to your repositories tox.ini, at the bottom of the [testenv:ansible]] stanza, in the commands section.

rm -rf {toxinidir}/tests/playbooks
git clone https://git.openstack.org/openstack/openstack-ansible-tests \
          {toxinidir}/tests/playbooks

To override variables you can create a role-overrides.yml file inside tests, which you can include in your tox.ini. You will have to set the rolename for the repository due to how the base repository is cloned when gates run, the below example shows keystone's settings:

-e @{toxinidir/tests/keystone-overrides.yml \
-e "keystone_rolename={toxinidir}" \

In your repositories tests/test.yml file, you can call any of the included playbooks, for example:

- include: playbooks/test-prepare-keys.yml

Network Settings

The networking can be configured and setup using the bridges variable.

The base option, when only 1 interface is required is to specify just a single base - this is only for backwards compatibility with existing test setup and will default to br-mgmt with an IP of 10.1.0.1.

bridges:
  - "br-mgmt"

To allow a more complicated network setup we can specify ip_addr: The IP address on the interface. netmask: Netmask of the interface (defaults to 255.255.255.0) name: Name of the interface veth_peer: Set up a veth peer for the interface

For example, a Nova setup may look like this:

bridges:
  - name: "br-mgmt"
    ip_addr: "10.1.0.1"
  - name: "br-vxlan"
    ip_addr: "10.1.1.1"
  - name: "br-vlan"
    ip_addr: "10.1.2.1"
    veth_peer: "eth12"
Description
DEPRECATED, Common testing content for OpenStack-Ansible
Readme 11 MiB