Skip to content
Snippets Groups Projects
Commit ce897888 authored by Vladislav Belogrudov's avatar Vladislav Belogrudov Committed by Jeffrey Zhang
Browse files

Allow flexibility in mysql backend for ceilometer

This fix adds possibility to configure external mysql database
backend with a different set of credentials, i.e. not requiring
external db admins to provide or match their passwords if
ceilometer user and database already are preconfigured.

Change-Id: Icb78e069770adcc6d2437caca173a5852177178f
Closes-Bug: #1638238
parent b7bac2fb
No related branches found
No related tags found
No related merge requests found
......@@ -7,9 +7,10 @@ project_name: "ceilometer"
####################
ceilometer_database_name: "ceilometer"
ceilometer_database_user: "ceilometer"
ceilometer_database_port: "{{ mondodb_port if ceilometer_database_type == 'mongodb' else database_port }}"
ceilometer_database_mongodb_address: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mongodb_port }}{% if not loop.last %},{% endif %}{% endfor %}"
ceilometer_database_mysql_address: "{{ kolla_internal_fqdn }}:{{ database_port }}"
ceilometer_database_mongodb_address: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ ceilometer_database_port }}{% if not loop.last %},{% endif %}{% endfor %}"
ceilometer_database_mysql_address: "{{ kolla_internal_fqdn }}:{{ ceilometer_database_port }}"
####################
......
......@@ -10,11 +10,26 @@
when:
- ceilometer_database_type == "mongodb"
- name: Checking Ceilometer mysql database
command: docker exec -t kolla_toolbox /usr/bin/ansible localhost
-m mysql_db
-a "login_host='{{ ceilometer_database_mysql_address }}'
login_port='{{ ceilometer_database_port }}'
login_user='{{ ceilometer_database_user }}'
login_password='{{ ceilometer_database_password }}'
name='{{ ceilometer_database_name }}'"
register: mysql_access
failed_when: False
changed_when: False
run_once: True
when:
- ceilometer_database_type == "mysql"
- name: Creating Ceilometer mysql database
command: docker exec -t kolla_toolbox /usr/bin/ansible localhost
-m mysql_db
-a "login_host='{{ ceilometer_database_mysql_address }}'
login_port='{{ database_port }}'
login_port='{{ ceilometer_database_port }}'
login_user='{{ database_user }}'
login_password='{{ database_password }}'
name='{{ ceilometer_database_name }}'"
......@@ -26,12 +41,13 @@
delegate_to: "{{ groups['ceilometer-api'][0] }}"
when:
- ceilometer_database_type == "mysql"
- "'FAILED' in mysql_access.stdout"
- name: Creating Ceilometer database user and setting permissions
command: docker exec -t kolla_toolbox /usr/bin/ansible localhost
-m mysql_user
-a "login_host='{{ ceilometer_database_mysql_address }}'
login_port='{{ database_port }}'
login_port='{{ ceilometer_database_port }}'
login_user='{{ database_user }}'
login_password='{{ database_password }}'
name='{{ ceilometer_database_name }}'
......@@ -47,9 +63,11 @@
delegate_to: "{{ groups['ceilometer-api'][0] }}"
when:
- ceilometer_database_type == "mysql"
- "'FAILED' in mysql_access.stdout"
# TODO(Jeffrey4l): fix idempotent when ceilomter_database_type == "gnocchi"
# NOTE(vbel): bootstrapping of mysql db for ceilometer is idempotent
- include: bootstrap_service.yml
when: ((ceilometer_database_type == "mongodb" and mongodb_ceilometer_database.changed)
or (ceilometer_database_type == "mysql" and mysql_ceilometer_database.changed)
or ceilometer_database_type == "mysql"
or ceilometer_database_type == "gnocchi")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment