kolla-ansible/ansible/roles/monasca/tasks/bootstrap.yml
Doug Szumski 712c89760c Add support for deploying Monasca Grafana
The Monasca Grafana fork allows users to log into Grafana with their
OpenStack user credentials and see metrics associated with their
OpenStack project. The long term goal is to enable Keystone support
in upstream Grafana, but this work seems to have stalled.

Partially-Implements: blueprint monasca-grafana
Change-Id: Icc04613b2571c094ae23b66d0bcc38b58c0ee4e1
2018-11-02 13:35:35 +00:00

63 lines
2.6 KiB
YAML

---
- name: Creating monasca database
kolla_toolbox:
module_name: mysql_db
module_args:
login_host: "{{ monasca_database_address }}"
login_port: "{{ monasca_database_port }}"
login_user: "{{ database_user }}"
login_password: "{{ database_password }}"
name: "{{ item }}"
register: database
run_once: True
delegate_to: "{{ groups['monasca-api'][0] }}"
with_items:
- "{{ monasca_database_name }}"
- "{{ monasca_grafana_database_name }}"
when:
- not use_preconfigured_databases | bool
- name: Creating monasca database user and setting permissions
kolla_toolbox:
module_name: mysql_user
module_args:
login_host: "{{ monasca_database_address }}"
login_port: "{{ monasca_database_port }}"
login_user: "{{ database_user }}"
login_password: "{{ database_password }}"
name: "{{ monasca_database_user }}"
password: "{{ monasca_database_password }}"
host: "%"
priv: "{{ monasca_database_name }}.*:ALL/{{ monasca_grafana_database_name }}.*:ALL"
append_privs: "yes"
run_once: True
delegate_to: "{{ groups['monasca-api'][0] }}"
when:
- not use_preconfigured_databases | bool
- database.changed
- include_tasks: bootstrap_service.yml
when: database.changed or use_preconfigured_databases | bool
# NOTE(dszumski): Monasca is not yet compatible with InfluxDB > 1.1.10, which means
# that the official Ansible modules for managing InfluxDB don't work [1].
# We therefore fall back to manual commands to register the database
# and set a default retention policy.
# [1] https://github.com/influxdata/influxdb-python#influxdb-pre-v110-users
- name: List influxdb databases
command: "docker exec influxdb influx -host {{ monasca_influxdb_address }} -port {{ monasca_influxdb_http_port }} -execute 'show databases'"
run_once: True
delegate_to: "{{ groups['influxdb'][0] }}"
register: monasca_influxdb_database
changed_when: False
- name: Creating monasca influxdb database
command: "docker exec influxdb influx -host {{ monasca_influxdb_address }} -port {{ monasca_influxdb_http_port }} -execute 'CREATE DATABASE {{ monasca_influxdb_name }} WITH DURATION {{ monasca_influxdb_retention_policy.duration }} REPLICATION {{ monasca_influxdb_retention_policy.replication_count }} NAME {{ monasca_influxdb_retention_policy.name }}'"
run_once: True
delegate_to: "{{ groups['influxdb'][0] }}"
when: monasca_influxdb_name not in monasca_influxdb_database.stdout_lines
# NOTE(dszumski): The Monasca APIs write logs and messages to Kafka. Since
# Kafka has automatic topic generation enabled by default we don't need to
# create topics here.