
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
398 lines
13 KiB
YAML
398 lines
13 KiB
YAML
---
|
|
- name: Ensuring config directories exist
|
|
file:
|
|
path: "{{ node_config_directory }}/{{ item.key }}"
|
|
state: "directory"
|
|
owner: "{{ config_owner_user }}"
|
|
group: "{{ config_owner_group }}"
|
|
mode: "0770"
|
|
recurse: yes
|
|
become: true
|
|
when:
|
|
- inventory_hostname in groups[item.value.group]
|
|
- item.value.enabled | bool
|
|
with_dict: "{{ monasca_services }}"
|
|
|
|
- name: Copying over config.json files for services
|
|
template:
|
|
src: "{{ item.key }}/{{ item.key }}.json.j2"
|
|
dest: "{{ node_config_directory }}/{{ item.key }}/config.json"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_config_jsons
|
|
when:
|
|
- inventory_hostname in groups[item.value.group]
|
|
- item.value.enabled | bool
|
|
with_dict: "{{ monasca_services }}"
|
|
notify:
|
|
- "Restart {{ item.key }} container"
|
|
|
|
- name: Copying over monasca-agent-collector config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-agent-collector'] }}"
|
|
merge_yaml:
|
|
sources:
|
|
- "{{ role_path }}/templates/monasca-agent-collector/{{ item }}.j2"
|
|
- "{{ node_custom_config }}/monasca/{{ item }}"
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-agent-collector/{{ item }}"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_agent_collector_confs
|
|
with_items:
|
|
- agent-collector.yml
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-agent-collector container
|
|
|
|
- name: Ensuring monasca-agent collector plugin config directory exists
|
|
vars:
|
|
service: "{{ monasca_services['monasca-agent-collector'] }}"
|
|
file:
|
|
path: "{{ node_config_directory }}/monasca-agent-collector/plugins"
|
|
state: "directory"
|
|
owner: "{{ config_owner_user }}"
|
|
group: "{{ config_owner_group }}"
|
|
mode: "0770"
|
|
become: true
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
|
|
- name: Find monasca-agent-collector plugin configuration files
|
|
find:
|
|
paths:
|
|
- "{{ role_path }}/templates/monasca-agent-collector/plugins/"
|
|
- "{{ node_custom_config }}/monasca/agent_plugins/"
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/agent_plugins/"
|
|
patterns: '*.yaml'
|
|
run_once: True
|
|
register: agent_plugins
|
|
|
|
- name: Copying over monasca-agent-collector plugins
|
|
vars:
|
|
service: "{{ monasca_services['monasca-agent-collector'] }}"
|
|
template:
|
|
src: "{{ item.path }}"
|
|
dest: "{{ node_config_directory }}/monasca-agent-collector/plugins/{{ item.path | basename }}"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_agent_collector_plugin_confs
|
|
with_items:
|
|
"{{ agent_plugins.files }}"
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-agent-collector container
|
|
|
|
- name: Copying over monasca-agent-forwarder config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-agent-forwarder'] }}"
|
|
merge_yaml:
|
|
sources:
|
|
- "{{ role_path }}/templates/monasca-agent-forwarder/{{ item }}.j2"
|
|
- "{{ node_custom_config }}/monasca/{{ item }}"
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-agent-forwarder/{{ item }}"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_agent_forwarder_confs
|
|
with_items:
|
|
- agent-forwarder.yml
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-agent-forwarder container
|
|
|
|
- name: Copying over monasca-agent-statsd config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-agent-statsd'] }}"
|
|
merge_yaml:
|
|
sources:
|
|
- "{{ role_path }}/templates/monasca-agent-statsd/{{ item }}.j2"
|
|
- "{{ node_custom_config }}/monasca/{{ item }}"
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-agent-statsd/{{ item }}"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_agent_statsd_confs
|
|
with_items:
|
|
- agent-statsd.yml
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-agent-statsd container
|
|
|
|
- name: Copying over monasca-api config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-api'] }}"
|
|
merge_configs:
|
|
sources:
|
|
- "{{ role_path }}/templates/monasca-api/{{ item }}.j2"
|
|
- "{{ node_custom_config }}/monasca/{{ item }}"
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-api/{{ item }}"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_api_confs
|
|
with_items:
|
|
- api.conf
|
|
- api-config.ini
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-api container
|
|
|
|
- name: Copying over monasca-api wsgi config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-api'] }}"
|
|
template:
|
|
src: "{{ role_path }}/templates/monasca-api/wsgi-api.conf.j2"
|
|
dest: "{{ node_config_directory }}/monasca-api/wsgi-api.conf"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_api_wsgi_confs
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-api container
|
|
|
|
- name: Copying over monasca-log-api config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-log-api'] }}"
|
|
merge_configs:
|
|
sources:
|
|
- "{{ role_path }}/templates/monasca-log-api/{{ item }}.j2"
|
|
- "{{ node_custom_config }}/monasca/{{ item }}"
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-log-api/{{ item }}"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_log_api_confs
|
|
with_items:
|
|
- log-api.conf
|
|
- log-api-paste.ini
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-log-api container
|
|
|
|
- name: Copying over monasca-log-api wsgi config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-log-api'] }}"
|
|
template:
|
|
src: "{{ role_path }}/templates/monasca-log-api/wsgi-log-api.conf.j2"
|
|
dest: "{{ node_config_directory }}/monasca-log-api/wsgi-log-api.conf"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_log_api_wsgi_confs
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-log-api container
|
|
|
|
- name: Copying over monasca-log-transformer config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-log-transformer'] }}"
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-log-transformer/log-transformer.conf"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_log_transformer_confs
|
|
with_first_found:
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/log-transformer.conf"
|
|
- "{{ node_custom_config }}/monasca/log-transformer.conf"
|
|
- "{{ role_path }}/templates/monasca-log-transformer/log-transformer.conf.j2"
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-log-transformer container
|
|
|
|
- name: Copying over monasca-log-persister config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-log-persister'] }}"
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-log-persister/log-persister.conf"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_log_persister_confs
|
|
with_first_found:
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/log-persister.conf"
|
|
- "{{ node_custom_config }}/monasca/log-persister.conf"
|
|
- "{{ role_path }}/templates/monasca-log-persister/log-persister.conf.j2"
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-log-persister container
|
|
|
|
- name: Copying over monasca-log-persister elasticsearch template
|
|
vars:
|
|
service: "{{ monasca_services['monasca-log-persister'] }}"
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-log-persister/elasticsearch-template.json"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_log_persister_elasticsearch_template
|
|
with_first_found:
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/elasticsearch-template.json"
|
|
- "{{ node_custom_config }}/monasca/elasticsearch-template.json"
|
|
- "{{ role_path }}/templates/monasca-log-persister/elasticsearch-template.json"
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-log-persister container
|
|
|
|
- name: Copying over monasca-log-metrics config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-log-metrics'] }}"
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-log-metrics/log-metrics.conf"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_log_metrics_confs
|
|
with_first_found:
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/log-metrics.conf"
|
|
- "{{ node_custom_config }}/monasca/log-metrics.conf"
|
|
- "{{ role_path }}/templates/monasca-log-metrics/log-metrics.conf.j2"
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-log-metrics container
|
|
|
|
- name: Copying over monasca-thresh config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-thresh'] }}"
|
|
# NOTE(dszumski): We can't use merge_yaml since it replaces empty values
|
|
# with `null`. This breaks the thresholder config file parsing (which should
|
|
# probably be more robust).
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-thresh/thresh-config.yml"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_thresh_confs
|
|
with_first_found:
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/thresh-config.yml"
|
|
- "{{ node_custom_config }}/monasca/thresh-config.yml"
|
|
- "{{ role_path }}/templates/monasca-thresh/thresh-config.yml.j2"
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-thresh container
|
|
|
|
- name: Copying over monasca-thresh storm config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-thresh'] }}"
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-thresh/storm.yml"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_thresh_storm_conf
|
|
with_first_found:
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/storm.yml"
|
|
- "{{ node_custom_config }}/monasca/storm.yml"
|
|
- "{{ role_path }}/templates/monasca-thresh/storm.yml.j2"
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-thresh container
|
|
|
|
- name: Copying over monasca-notification config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-notification'] }}"
|
|
merge_configs:
|
|
sources:
|
|
- "{{ role_path }}/templates/monasca-notification/{{ item }}.j2"
|
|
- "{{ node_custom_config }}/monasca/{{ item }}"
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-notification/{{ item }}"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_notification_confs
|
|
with_items:
|
|
- notification.conf
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-notification container
|
|
|
|
- name: Copying over monasca-persister config
|
|
vars:
|
|
service: "{{ monasca_services['monasca-persister'] }}"
|
|
merge_configs:
|
|
sources:
|
|
- "{{ role_path }}/templates/monasca-persister/{{ item }}.j2"
|
|
- "{{ node_custom_config }}/monasca/{{ item }}"
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-persister/{{ item }}"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_persister_confs
|
|
with_items:
|
|
- persister.conf
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-persister container
|
|
|
|
- name: Copying over monasca-grafana config file
|
|
vars:
|
|
service: "{{ monasca_services['monasca-grafana'] }}"
|
|
merge_configs:
|
|
sources:
|
|
- "{{ role_path }}/templates/monasca-grafana/{{ item }}.j2"
|
|
- "{{ node_custom_config }}/monasca/{{ item }}"
|
|
- "{{ node_custom_config }}/monasca/{{ inventory_hostname }}/{{ item }}"
|
|
dest: "{{ node_config_directory }}/monasca-grafana/{{ item }}"
|
|
mode: "0660"
|
|
become: true
|
|
register: monasca_grafana_confs
|
|
with_items:
|
|
- grafana.ini
|
|
when:
|
|
- inventory_hostname in groups[service['group']]
|
|
- service.enabled | bool
|
|
notify:
|
|
- Restart monasca-grafana container
|
|
|
|
- name: Check monasca containers
|
|
become: true
|
|
kolla_docker:
|
|
action: "compare_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ item.value.container_name }}"
|
|
image: "{{ item.value.image }}"
|
|
pid_mode: "{{ item.value.pid_mode|default('') }}"
|
|
volumes: "{{ item.value.volumes }}"
|
|
dimensions: "{{ item.value.dimensions }}"
|
|
register: check_monasca_containers
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname in groups[item.value.group]
|
|
- item.value.enabled | bool
|
|
with_dict: "{{ monasca_services }}"
|
|
notify:
|
|
- "Restart {{ item.key }} container"
|