diff --git a/defaults/main.yml b/defaults/main.yml index e5baf129..2a3562bd 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -54,6 +54,8 @@ octavia_clients_endpoint: internalURL octavia_auth_strategy: keystone ## Database info +octavia_db_setup_host: "{{ ('galera_all' in groups) | ternary(groups['galera_all'][0], 'localhost') }}" +octavia_galera_address: "{{ galera_address | default('127.0.0.1') }}" octavia_galera_user: octavia octavia_galera_database: octavia octavia_galera_use_ssl: "{{ galera_use_ssl | default(False) }}" diff --git a/tasks/octavia_db_setup.yml b/tasks/octavia_db_setup.yml index 4551926e..ca8ce47a 100644 --- a/tasks/octavia_db_setup.yml +++ b/tasks/octavia_db_setup.yml @@ -13,6 +13,32 @@ # See the License for the specific language governing permissions and # limitations under the License. +- name: Create DB for service + mysql_db: + login_user: "{{ galera_root_user }}" + login_password: "{{ galera_root_password }}" + login_host: "{{ octavia_galera_address }}" + name: "{{ octavia_galera_database }}" + state: "present" + delegate_to: "{{ octavia_db_setup_host }}" + no_log: True + +- name: Grant access to the DB for the service + mysql_user: + login_user: "{{ galera_root_user }}" + login_password: "{{ galera_root_password }}" + login_host: "{{ octavia_galera_address }}" + name: "{{ octavia_galera_user }}" + password: "{{ octavia_container_mysql_password }}" + host: "{{ item }}" + state: "present" + priv: "{{ octavia_galera_database }}.*:ALL" + delegate_to: "{{ octavia_db_setup_host }}" + with_items: + - "localhost" + - "%" + no_log: True + # Update is offline - name: Stop octavia services service: diff --git a/tests/test-install-octavia.yml b/tests/test-install-octavia.yml index 7327bd71..f9133fc8 100644 --- a/tests/test-install-octavia.yml +++ b/tests/test-install-octavia.yml @@ -23,9 +23,6 @@ notify_vhost: "{{ octavia_oslomsg_notify_vhost }}" notify_user: "{{ octavia_oslomsg_notify_userid }}" notify_password: "{{ octavia_oslomsg_notify_password }}" - - include: common/create-grant-db.yml - db_name: "{{ octavia_galera_database }}" - db_password: "{{ octavia_container_mysql_password }}" roles: - role: "{{ octavia_rolename | default('os_octavia') }}" vars_files: