kolla-ansible/ansible/roles/cloudkitty/tasks/bootstrap.yml
Mark Goddard d5e5e885d1 During deploy, always sync DB
A common class of problems goes like this:

* kolla-ansible deploy
* Hit a problem, often in ansible/roles/*/tasks/bootstrap.yml
* Re-run kolla-ansible deploy
* Service fails to start

This happens because the DB is created during the first run, but for some
reason we fail before performing the DB sync. This means that on the second run
we don't include ansible/roles/*/tasks/bootstrap_service.yml because the DB
already exists, and therefore still don't perform the DB sync. However this
time, the command may complete without apparent error.

We should be less careful about when we perform the DB sync, and do it whenever
it is necessary. There is an argument for not doing the sync during a
'reconfigure' command, although we will not change that here.

This change only always performs the DB sync during 'deploy' and
'reconfigure' commands.

Change-Id: I82d30f3fcf325a3fdff3c59f19a1f88055b566cc
Closes-Bug: #1823766
Closes-Bug: #1797814
2019-07-12 08:56:54 +00:00

47 lines
1.4 KiB
YAML

---
- name: Creating Cloudkitty database
become: true
kolla_toolbox:
module_name: mysql_db
module_args:
login_host: "{{ database_address }}"
login_port: "{{ database_port }}"
login_user: "{{ database_user }}"
login_password: "{{ database_password }}"
name: "{{ cloudkitty_database_name }}"
run_once: True
delegate_to: "{{ groups['cloudkitty-api'][0] }}"
when:
- not use_preconfigured_databases | bool
- name: Creating Cloudkitty database user and setting permissions
become: true
kolla_toolbox:
module_name: mysql_user
module_args:
login_host: "{{ database_address }}"
login_port: "{{ database_port }}"
login_user: "{{ database_user }}"
login_password: "{{ database_password }}"
name: "{{ cloudkitty_database_user }}"
password: "{{ cloudkitty_database_password }}"
host: "%"
priv: "{{ cloudkitty_database_name }}.*:ALL"
append_privs: "yes"
run_once: True
delegate_to: "{{ groups['cloudkitty-api'][0] }}"
when:
- not use_preconfigured_databases | bool
- name: Creating Cloudkitty influxdb database
become: true
kolla_toolbox:
module_name: influxdb_database
module_args:
hostname: "{{ influxdb_address }}"
port: "{{ influxdb_http_port }}"
database_name: "{{ cloudkitty_influxdb_name }}"
when: cloudkitty_storage_backend == 'influxdb'
- include_tasks: bootstrap_service.yml