--- # Copyright 2016 Internet Solutions (Pty) Ltd # # 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. # # (c) 2016 Donovan Francesco # (c) 2016 Paul Stevens - name: Playbook for deploying trove hosts: trove_all user: root gather_facts: true pre_tasks: # NOTE: These are typically installed in the repo server where we build the # trove wheel - name: Install packages required to build trove python package apt: name: "{{ item }}" with_items: - libxml2-dev - libxslt-dev - libffi-dev - pkg-config - libvirt-dev when: inventory_hostname in groups['trove_all'] - name: Ensure rabbitmq vhost rabbitmq_vhost: name: "{{ trove_rabbitmq_vhost }}" state: "present" delegate_to: "10.100.102.101" when: inventory_hostname == groups['trove_all'][0] - name: Ensure rabbitmq user rabbitmq_user: user: "{{ trove_rabbitmq_userid }}" password: "{{ trove_rabbitmq_password }}" vhost: "{{ trove_rabbitmq_vhost }}" configure_priv: ".*" read_priv: ".*" write_priv: ".*" state: "present" delegate_to: "10.100.102.101" when: inventory_hostname == groups['trove_all'][0] - name: Create DB for service mysql_db: login_user: "{{ galera_root_user }}" login_password: "{{ galera_root_password }}" login_host: "{{ trove_galera_address }}" name: "{{ trove_galera_database }}" state: "present" delegate_to: "10.100.102.101" when: inventory_hostname == groups['trove_all'][0] - name: Grant access to the DB for the service mysql_user: login_user: "{{ galera_root_user }}" login_password: "{{ galera_root_password }}" login_host: "{{ trove_galera_address }}" name: "{{ trove_galera_database }}" password: "{{ trove_galera_password }}" host: "{{ item }}" state: "present" priv: "{{ trove_galera_database }}.*:ALL" with_items: - "localhost" - "%" delegate_to: "10.100.102.101" when: inventory_hostname == groups['trove_all'][0] roles: - role: "{{ rolename | basename }}" vars_files: - test-vars.yml