- name: Install trove controller
hosts: controller
become: true
roles:
- role: init_database
vars:
database: trove
user: trove
- role: create_identity_user
vars:
user: trove
- role: create_identity_service
vars:
service: trove
type: database
description: "OpenStack Trove"
endpoint: http://{{ hostvars['controller']['ansible_default_ipv4']['address'] }}:8779/v1.0/%\(tenant_id\)s
tasks:
- name: Install trove package
yum:
name:
- openstack-trove
- python3-troveclient
- name: Init config file
hosts: controller
become: true
tasks:
- name: Initialize /etc/trove/trove.conf
shell: |
cat << EOF > /etc/trove/trove.conf
[DEFAULT]
log_dir = /var/log/trove
trove_auth_url = http://{{ hostvars['controller']['ansible_default_ipv4']['address'] }}:5000
nova_compute_url = http://{{ hostvars['controller']['ansible_default_ipv4']['address'] }}:8774/v2.1
cinder_url = http://{{ hostvars['controller']['ansible_default_ipv4']['address'] }}:8776/v2
swift_url = http://{{ hostvars['controller']['ansible_default_ipv4']['address'] }}:8080/v1/AUTH_
rpc_backend = rabbit
transport_url = rabbit://openstack:{{ rabbitmq_password }}@{{ hostvars['controller']['ansible_default_ipv4']['address'] }}:5672/
auth_strategy = keystone
add_addresses = True
api_paste_config = /etc/trove/api-paste.ini
nova_proxy_admin_user = admin
nova_proxy_admin_pass = {{ project_identity_password }}
nova_proxy_admin_tenant_name = service
taskmanager_manager = trove.taskmanager.manager.Manager
use_nova_server_config_drive = True
network_driver=trove.network.neutron.NeutronDriver
network_label_regex=.*
[database]
connection = mysql+pymysql://trove:{{ mysql_project_password }}@{{ hostvars['controller']['ansible_default_ipv4']['address'] }}/trove
[keystone_authtoken]
www_authenticate_uri = http://{{ hostvars['controller']['ansible_default_ipv4']['address'] }}:5000/
auth_url = http://{{ hostvars['controller']['ansible_default_ipv4']['address'] }}:5000/
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = trove
password = {{ project_identity_password }}
EOF
- name: Initialize /etc/trove/trove-guestagent.conf
shell: |
cat << EOF > /etc/trove/trove-guestagent.conf
[DEFAULT]
rabbit_host = {{ hostvars['controller']['ansible_default_ipv4']['address'] }}
rabbit_password = {{ rabbitmq_password }}
trove_auth_url = http://{{ hostvars['controller']['ansible_default_ipv4']['address'] }}:5000/
EOF
- name: Sync database
hosts: controller
become: true
tasks:
- name: Sync database
shell: |
su -s /bin/sh -c "trove-manage db_sync" trove
- name: Complete trove install
hosts: controller
become: true
tasks:
- name: Start openstack-trove-api service
systemd:
name: openstack-trove-api
state: started
enabled: True
- name: Start openstack-trove-taskmanager service
systemd:
name: openstack-trove-taskmanager
state: started
enabled: True
- name: Start openstack-trove-conductor service
systemd:
name: openstack-trove-conductor
state: started
enabled: True