Mentions légales du service

Skip to content
Snippets Groups Projects
Commit c11f9f52 authored by Doug Szumski's avatar Doug Szumski Committed by Mark Goddard
Browse files

Support deploying the Monasca API


Deploys the Monasca API with mod_wsgi + Apache.

Co-Authored-By: default avatarMark Goddard <mark@stackhpc.com>

Partially-Implements: blueprint monasca-roles
Change-Id: I3e03762217fbef1fb0cbff6239abb109cbec226b
parent 6647ed81
No related branches found
No related tags found
No related merge requests found
Showing with 208 additions and 0 deletions
---
- name: Pulling monasca images
kolla_docker:
action: "pull_image"
common_options: "{{ docker_common_options }}"
image: "{{ item.value.image }}"
when:
- inventory_hostname in groups[item.value.group]
- item.value.enabled | bool
with_dict: "{{ monasca_services }}"
---
- include: deploy.yml
---
- name: Creating monasca-api service and endpoints
kolla_toolbox:
module_name: "kolla_keystone_service"
module_args:
service_name: "monasca-api"
service_type: "monitoring"
description: "Monasca monitoring as a service"
endpoint_region: "{{ openstack_region_name }}"
url: "{{ item.url }}"
interface: "{{ item.interface }}"
region_name: "{{ openstack_region_name }}"
auth: "{{ monasca_openstack_auth }}"
run_once: True
with_items:
- {'interface': 'admin', 'url': '{{ monasca_api_admin_endpoint }}'}
- {'interface': 'internal', 'url': '{{ monasca_api_internal_endpoint }}'}
- {'interface': 'public', 'url': '{{ monasca_api_public_endpoint }}'}
- name: Creating the monasca keystone user
kolla_toolbox:
module_name: "kolla_keystone_user"
module_args:
project: "service"
user: "{{ monasca_keystone_user }}"
password: "{{ monasca_keystone_password }}"
role: "admin"
region_name: "{{ openstack_region_name }}"
auth: "{{ '{{ monasca_openstack_auth }}' }}"
run_once: True
- name: Creating monasca roles
kolla_toolbox:
module_name: os_keystone_role
module_args:
name: "{{ item }}"
region_name: "{{ openstack_region_name }}"
auth: "{{ monasca_openstack_auth }}"
run_once: True
with_items:
- "{{ monasca_default_authorized_roles }}"
- "{{ monasca_agent_authorized_roles }}"
- "{{ monasca_read_only_authorized_roles }}"
- "{{ monasca_delegate_authorized_roles }}"
---
- include: config.yml
- name: Flush handlers
meta: flush_handlers
[DEFAULT]
log_file = monasca-api.log
log_dir = /var/log/kolla/monasca
debug = {{ monasca_logging_debug }}
region = {{ openstack_region_name }}
[database]
database = {{ monasca_database_name }}
connection = mysql+pymysql://{{ monasca_database_user }}:{{ monasca_database_password }}@{{ monasca_database_address }}/{{ monasca_database_name }}
[influxdb]
database_name = {{ monasca_influxdb_name }}
ip_address = {{ monasca_influxdb_address }}
port = {{ monasca_influxdb_http_port }}
[kafka]
partitions = 0
uri = {{ monasca_kafka }}
[messaging]
driver = monasca_api.common.messaging.kafka_publisher:KafkaPublisher
[security]
default_authorized_roles = {{ monasca_default_authorized_roles|join(', ') }}
agent_authorized_roles = {{ monasca_agent_authorized_roles|join(', ') }}
read_only_authorized_roles = {{ monasca_read_only_authorized_roles|join(', ') }}
delegate_authorized_roles = {{ monasca_delegate_authorized_roles|join(', ') }}
[keystone_authtoken]
auth_uri = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_public_port }}
auth_url = {{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}
auth_type = password
project_domain_id = {{ default_project_domain_id }}
user_domain_id = {{ default_user_domain_id }}
project_name = service
username = {{ monasca_keystone_user }}
password = {{ monasca_keystone_password }}
service_token_roles_required=True
memcache_security_strategy = ENCRYPT
memcache_secret_key = {{ memcache_secret_key }}
memcached_servers = {{ monasca_memcached_servers }}
[dispatcher]
versions = monasca_api.v2.reference.versions:Versions
version_2_0 = monasca_api.v2.reference.version_2_0:Version2
metrics = monasca_api.v2.reference.metrics:Metrics
metrics_measurements = monasca_api.v2.reference.metrics:MetricsMeasurements
metrics_statistics = monasca_api.v2.reference.metrics:MetricsStatistics
metrics_names = monasca_api.v2.reference.metrics:MetricsNames
alarm_definitions = monasca_api.v2.reference.alarm_definitions:AlarmDefinitions
alarms = monasca_api.v2.reference.alarms:Alarms
alarms_count = monasca_api.v2.reference.alarms:AlarmsCount
alarms_state_history = monasca_api.v2.reference.alarms:AlarmsStateHistory
notification_methods = monasca_api.v2.reference.notifications:Notifications
dimension_values = monasca_api.v2.reference.metrics:DimensionValues
dimension_names = monasca_api.v2.reference.metrics:DimensionNames
notification_method_types = monasca_api.v2.reference.notificationstype:NotificationsType
healthchecks = monasca_api.healthchecks:HealthChecks
[DEFAULT]
name = monasca_api
[pipeline:main]
pipeline = request_id auth api
[app:api]
paste.app_factory = monasca_api.api.server:launch
[filter:auth]
paste.filter_factory = monasca_api.healthcheck.keystone_protocol:filter_factory
[filter:request_id]
paste.filter_factory = oslo_middleware.request_id:RequestId.factory
{% set monasca_cmd = 'apache2' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd' %}
{% set wsgi_conf_dir = 'apache2/conf-enabled' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd/conf.d' %}
{
"command": "/usr/sbin/{{ monasca_cmd }} -DFOREGROUND",
"config_files": [
{
"source": "{{ container_config_directory }}/api-config.conf",
"dest": "/etc/monasca/api-config.conf",
"owner": "monasca",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/api-config.ini",
"dest": "/etc/monasca/api-config.ini",
"owner": "monasca",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/wsgi-api.conf",
"dest": "/etc/{{ wsgi_conf_dir }}/wsgi-config.conf",
"owner": "monasca",
"perm": "0600"
}
],
"permissions": [
{
"path": "/var/log/kolla/monasca",
"owner": "monasca:kolla",
"recurse": true
}
]
}
{% set python_path = '/usr/lib/python2.7/site-packages' if kolla_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
{% set wsgi_path = '/usr/bin' if monasca_install_type == 'binary' else '/monasca-api/monasca_api/api' %}
Listen {{ api_interface_address }}:{{ monasca_api_port }}
TraceEnable off
<VirtualHost *:{{ monasca_api_port }}>
ErrorLog "/var/log/kolla/monasca/monasca-api-error.log"
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" logformat
CustomLog "/var/log/kolla/monasca/monasca-api-access.log" logformat
WSGIApplicationGroup %{GLOBAL}
WSGIDaemonProcess monasca-api group=monasca processes={{ openstack_service_workers }} threads=1 user=monasca python-path={{ python_path }}
WSGIProcessGroup monasca-api
WSGIScriptAlias / {{ wsgi_path }}/wsgi.py
WSGIPassAuthorization On
SetEnv no-gzip 1
<Directory "{{ wsgi_path }}">
Require all granted
</Directory>
</VirtualHost>
......@@ -546,6 +546,15 @@
tags: ceilometer,
when: enable_ceilometer | bool }
- name: Apply role monasca
gather_facts: false
hosts: monasca
serial: '{{ kolla_serial|default("0") }}'
roles:
- { role: monasca,
tags: monasca,
when: enable_monasca | bool }
- name: Apply role aodh
gather_facts: false
hosts:
......
......@@ -200,6 +200,7 @@ kolla_internal_vip_address: "10.10.10.254"
#enable_manila_backend_cephfs_native: "no"
#enable_manila_backend_cephfs_nfs: "no"
#enable_mistral: "no"
#enable_monasca: "no"
#enable_mongodb: "no"
#enable_murano: "no"
#enable_multipathd: "no"
......
......@@ -122,6 +122,9 @@ murano_database_password:
murano_keystone_password:
murano_agent_rabbitmq_password:
monasca_database_password:
monasca_keystone_password:
ironic_database_password:
ironic_keystone_password:
......
---
features:
- Add a role for deploying the Monasca API which forms part of the
Monasca distributed monitoring and logging as a service platform.
See https://wiki.openstack.org/wiki/Monasca for more details.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment