--- # 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: Playbook for deploying keystone hosts: keystone_all user: root gather_facts: true pre_tasks: - name: Ensure rabbitmq vhost rabbitmq_vhost: name: "{{ keystone_rabbitmq_vhost }}" state: "present" delegate_to: "10.100.100.2" when: inventory_hostname == groups['keystone_all'][0] - name: Ensure rabbitmq user rabbitmq_user: user: "{{ keystone_rabbitmq_userid }}" password: "{{ keystone_rabbitmq_password }}" vhost: "{{ keystone_rabbitmq_vhost }}" configure_priv: ".*" read_priv: ".*" write_priv: ".*" state: "present" delegate_to: "10.100.100.2" when: inventory_hostname == groups['keystone_all'][0] - name: Create DB for service mysql_db: login_user: "root" login_password: "secrete" login_host: "localhost" name: "{{ keystone_galera_database }}" state: "present" delegate_to: "10.100.100.2" when: inventory_hostname == groups['keystone_all'][0] - name: Grant access to the DB for the service mysql_user: login_user: "root" login_password: "secrete" login_host: "localhost" name: "{{ keystone_galera_database }}" password: "{{ keystone_container_mysql_password }}" host: "{{ item }}" state: "present" priv: "{{ keystone_galera_database }}.*:ALL" with_items: - "localhost" - "%" delegate_to: "10.100.100.2" when: inventory_hostname == groups['keystone_all'][0] roles: - role: "{{ rolename | basename }}" tasks: # needed by the functional test playbook below - name: Install httplib2 so we can use the uri module pip: name: httplib2 vars_files: - test-vars.yml - name: Playbook for functional testing keystone hosts: keystone_all user: root gather_facts: false tasks: - name: Check the keystone api uri: url: "http://localhost:{{ item }}" status_code: 300 register: result until: result.status == 300 retries: 5 delay: 10 with_items: - 5000 - 35357 - name: Check for expected users keystone: command: get_user user_name: "{{ item }}" endpoint: "{{ keystone_service_adminurl }}" login_user: "{{ keystone_admin_user_name }}" login_password: "{{ keystone_auth_admin_password }}" login_project_name: "{{ keystone_admin_tenant_name }}" with_items: - "admin" - "keystone" - name: Check for expected projects keystone: command: get_project project_name: "{{ item }}" endpoint: "{{ keystone_service_adminurl }}" login_user: "{{ keystone_admin_user_name }}" login_password: "{{ keystone_auth_admin_password }}" login_project_name: "{{ keystone_admin_tenant_name }}" with_items: - "admin" - "service" vars_files: - test-vars.yml