openstack-ansible-tests/test-install-keystone.yml
Jesse Pretorius d861c3902d Improve lint test flexibility
Currently the ansible-syntax and ansible-lint tests
assume the playbook to be tested against, the role
requirements file location and a single path for all
roles. This patch allows these to be modified so that
the tests can be used for the integrated repo which
does not have the same structure as the roles.

Various lint failures are no being picked up with
these modifications, so they're resolved using quick
hacks.

Change-Id: I8bea90082dbde7de49c5e2e86d298c017b16591d
2017-11-17 15:38:43 +00:00

83 lines
2.6 KiB
YAML

---
# Copyright 2015, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Prepare MQ/DB services
hosts: keystone_all[0]
gather_facts: true
any_errors_fatal: true
user: root
become: true
tasks:
- name: Set keystone_messaging fact
set_fact:
keystone_messaging_enabled: "{{ groups['rabbitmq_all'] is defined }}"
- include: ensure-rabbitmq.yml
vhost_name: "{{ keystone_rabbitmq_vhost }}"
user_name: "{{ keystone_rabbitmq_userid }}"
user_password: "{{ keystone_rabbitmq_password }}"
when: "{{ groups['rabbitmq_all'] is defined }}"
- include: create-grant-db.yml
db_name: "{{ keystone_galera_database }}"
db_password: "{{ keystone_container_mysql_password }}"
vars_files:
- test-vars.yml
- name: Playbook for deploying keystone
hosts: keystone_all
serial: 1
user: root
become: true
gather_facts: true
any_errors_fatal: true
pre_tasks:
# In order to ensure that any container, software or
# config file changes which causes a container/service
# restart do not cause an unexpected outage, we drain
# the load balancer back end for this container.
- include: common-tasks/haproxy-endpoint-manage.yml
vars:
haproxy_state: disabled
when:
- "groups['keystone_all'] | length > 1"
roles:
- role: "os_keystone"
post_tasks:
# Now that container changes are done, we can set
# the load balancer back end for this container
# to available again.
- include: common-tasks/haproxy-endpoint-manage.yml
vars:
haproxy_state: enabled
when:
- "groups['keystone_all'] | length > 1"
vars_files:
- test-vars.yml
- name: Playbook for finalising the keystone db migrations
hosts: keystone_all[0]
user: root
become: true
gather_facts: false
any_errors_fatal: true
tasks:
- name: Perform a Keystone DB sync contract
command: "/openstack/venvs/keystone-{{ keystone_venv_tag }}/bin/keystone-manage db_sync --contract"
become: yes
become_user: keystone
tags:
- skip_ansible_lint
vars_files:
- test-vars.yml