WwangxiyuanUpdate doc
b85bfd3f创建于 2022年8月15日历史提交
- 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