From 637b3a010deb88b7a892b9bddaf3973ff394a420 Mon Sep 17 00:00:00 2001 From: Yifei Xue Date: Fri, 22 Apr 2016 16:09:02 +0800 Subject: Add Aodh support for Compass JIRA: COMPASS-374 Change-Id: I923f66b5ab42a0b30d0f91701873d36f8e5147ba Signed-off-by: Yifei Xue --- .../ansible/openstack/HA-ansible-multinodes.yml | 1 + deploy/adapters/ansible/openstack/group_vars/all | 2 ++ .../adapters/ansible/roles/aodh/handlers/main.yml | 12 +++++++ deploy/adapters/ansible/roles/aodh/tasks/main.yml | 29 +++++++++++++++ .../ansible/roles/aodh/templates/aodh.conf.j2 | 41 ++++++++++++++++++++++ .../ansible/roles/aodh/templates/api_paste.ini.j2 | 22 ++++++++++++ .../ansible/roles/aodh/templates/policy.json.j2 | 20 +++++++++++ deploy/adapters/ansible/roles/aodh/vars/Debian.yml | 22 ++++++++++++ deploy/adapters/ansible/roles/aodh/vars/RedHat.yml | 22 ++++++++++++ deploy/adapters/ansible/roles/aodh/vars/main.yml | 12 +++++++ .../ansible/roles/ha/templates/haproxy.cfg | 11 ++++++ .../adapters/ansible/roles/keystone/vars/main.yml | 15 ++++++++ 12 files changed, 209 insertions(+) create mode 100644 deploy/adapters/ansible/roles/aodh/handlers/main.yml create mode 100644 deploy/adapters/ansible/roles/aodh/tasks/main.yml create mode 100644 deploy/adapters/ansible/roles/aodh/templates/aodh.conf.j2 create mode 100644 deploy/adapters/ansible/roles/aodh/templates/api_paste.ini.j2 create mode 100644 deploy/adapters/ansible/roles/aodh/templates/policy.json.j2 create mode 100644 deploy/adapters/ansible/roles/aodh/vars/Debian.yml create mode 100644 deploy/adapters/ansible/roles/aodh/vars/RedHat.yml create mode 100644 deploy/adapters/ansible/roles/aodh/vars/main.yml (limited to 'deploy/adapters') diff --git a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml index 6df1d0d9..d8b82c73 100644 --- a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml +++ b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml @@ -75,6 +75,7 @@ # - ext-network - dashboard - heat +# - aodh - hosts: all remote_user: root diff --git a/deploy/adapters/ansible/openstack/group_vars/all b/deploy/adapters/ansible/openstack/group_vars/all index 1efcc1c8..79859d0c 100644 --- a/deploy/adapters/ansible/openstack/group_vars/all +++ b/deploy/adapters/ansible/openstack/group_vars/all @@ -26,6 +26,8 @@ CINDER_DBPASS: cinder_db_secret CINDER_PASS: cinder_secret HEAT_DBPASS: heat_db_secret HEAT_PASS: heat_secret +AODH_DBPASS: aodh_db_secret +AODH_PASS: aodh_secret NEUTRON_DBPASS: neutron_db_secret NEUTRON_PASS: netron_secret NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan'] diff --git a/deploy/adapters/ansible/roles/aodh/handlers/main.yml b/deploy/adapters/ansible/roles/aodh/handlers/main.yml new file mode 100644 index 00000000..e1084c83 --- /dev/null +++ b/deploy/adapters/ansible/roles/aodh/handlers/main.yml @@ -0,0 +1,12 @@ +############################################################################## +# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +- name: restart aodh services + service: name={{ item }} state=restarted enabled=yes + with_items: services diff --git a/deploy/adapters/ansible/roles/aodh/tasks/main.yml b/deploy/adapters/ansible/roles/aodh/tasks/main.yml new file mode 100644 index 00000000..aa23b9e5 --- /dev/null +++ b/deploy/adapters/ansible/roles/aodh/tasks/main.yml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +- include_vars: "{{ ansible_os_family }}.yml" + +- name: install aodh packages + action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" + with_items: packages | union(packages_noarch) + +- name: update aodh conf + template: src={{ item }} dest=/etc/aodh/{{ item }} + backup=yes + with_items: + - aodh.conf.j2 +# - api_paste.ini.j2 +# - policy.json.j2 + notify: restart aodh services + +- name: write services to monitor list + lineinfile: dest=/opt/service create=yes line='{{ item }}' + with_items: services + +- meta: flush_handlers diff --git a/deploy/adapters/ansible/roles/aodh/templates/aodh.conf.j2 b/deploy/adapters/ansible/roles/aodh/templates/aodh.conf.j2 new file mode 100644 index 00000000..eac6e5bd --- /dev/null +++ b/deploy/adapters/ansible/roles/aodh/templates/aodh.conf.j2 @@ -0,0 +1,41 @@ +[DEFAULT] +bind_host = {{ internal_ip }} +bind_port = 8042 +rpc_backend = rabbit +auth_strategy = keystone +debug = True +verbose = True + +[oslo_messaging_rabbit] +rabbit_hosts = {{ internal_vip.ip }} +rabbit_userid = {{ RABBIT_USER }} +rabbit_password = {{ RABBIT_PASS }} +rabbit_use_ssl = false + +[database] +connection = mongodb://aodh:{{ AODH_DBPASS }}@{{ internal_vip.ip }}:27017/aodh + +[keystone_authtoken] +auth_uri = http://{{ internal_vip.ip }}:5000 +auth_url = http://{{ internal_vip.ip }}:35357 +identity_uri = http://{{ internal_vip.ip }}:35357 +auth_plugin = password +project_domain_id = default +user_domain_id = default +project_name = service +username = aodh +password = {{ AODH_PASS }} +memcached_servers = {{ memcached_servers }} +token_cache_time = 300 +revocation_cache_time = 60 + +[service_credentials] +os_auth_url = http://{{ internal_vip.ip }}:5000/v2.0 +os_username = aodh +os_tenant_name = service +os_password = {{ AODH_PASS }} +os_endpoint_type = internalURL +os_region_name = regionOne + +[api] +host = {{ internal_ip }} diff --git a/deploy/adapters/ansible/roles/aodh/templates/api_paste.ini.j2 b/deploy/adapters/ansible/roles/aodh/templates/api_paste.ini.j2 new file mode 100644 index 00000000..151789c4 --- /dev/null +++ b/deploy/adapters/ansible/roles/aodh/templates/api_paste.ini.j2 @@ -0,0 +1,22 @@ +# aodh API WSGI Pipeline +# Define the filters that make up the pipeline for processing WSGI requests +# Note: This pipeline is PasteDeploy's term rather than aodh's pipeline +# used for processing samples + +# Remove authtoken from the pipeline if you don't want to use keystone authentication +[pipeline:main] +pipeline = cors request_id authtoken api-server + +[app:api-server] +paste.app_factory = aodh.api.app:app_factory + +[filter:authtoken] +paste.filter_factory = keystonemiddleware.auth_token:filter_factory +oslo_config_project = aodh + +[filter:request_id] +paste.filter_factory = oslo_middleware:RequestId.factory + +[filter:cors] +paste.filter_factory = oslo_middleware.cors:filter_factory +oslo_config_project = aodh diff --git a/deploy/adapters/ansible/roles/aodh/templates/policy.json.j2 b/deploy/adapters/ansible/roles/aodh/templates/policy.json.j2 new file mode 100644 index 00000000..4fd873e9 --- /dev/null +++ b/deploy/adapters/ansible/roles/aodh/templates/policy.json.j2 @@ -0,0 +1,20 @@ +{ + "context_is_admin": "role:admin", + "segregation": "rule:context_is_admin", + "admin_or_owner": "rule:context_is_admin or project_id:%(project_id)s", + "default": "rule:admin_or_owner", + + "telemetry:get_alarm": "rule:admin_or_owner", + "telemetry:get_alarms": "rule:admin_or_owner", + "telemetry:query_alarm": "rule:admin_or_owner", + + "telemetry:create_alarm": "", + "telemetry:change_alarm": "rule:admin_or_owner", + "telemetry:delete_alarm": "rule:admin_or_owner", + + "telemetry:get_alarm_state": "rule:admin_or_owner", + "telemetry:change_alarm_state": "rule:admin_or_owner", + + "telemetry:alarm_history": "rule:admin_or_owner", + "telemetry:query_alarm_history": "rule:admin_or_owner" +} diff --git a/deploy/adapters/ansible/roles/aodh/vars/Debian.yml b/deploy/adapters/ansible/roles/aodh/vars/Debian.yml new file mode 100644 index 00000000..bdf4655e --- /dev/null +++ b/deploy/adapters/ansible/roles/aodh/vars/Debian.yml @@ -0,0 +1,22 @@ +############################################################################# +# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################# +--- +packages: + - aodh-api + - aodh-evaluator + - aodh-notifier + - aodh-listener + - aodh-expirer + - python-ceilometerclient + +services: + - aodh-api + - aodh-notifier + - aodh-evaluator + - aodh-listener diff --git a/deploy/adapters/ansible/roles/aodh/vars/RedHat.yml b/deploy/adapters/ansible/roles/aodh/vars/RedHat.yml new file mode 100644 index 00000000..3d182880 --- /dev/null +++ b/deploy/adapters/ansible/roles/aodh/vars/RedHat.yml @@ -0,0 +1,22 @@ +############################################################################# +# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################# +--- +packages: + - openstack-aodh-api + - openstack-aodh-evaluator + - openstack-aodh-notifier + - openstack-aodh-listener + - openstack-aodh-expirer + - python-ceilometerclient + +services: + - aodh-api + - aodh-notifier + - aodh-evaluator + - aodh-listener diff --git a/deploy/adapters/ansible/roles/aodh/vars/main.yml b/deploy/adapters/ansible/roles/aodh/vars/main.yml new file mode 100644 index 00000000..b17f6ed0 --- /dev/null +++ b/deploy/adapters/ansible/roles/aodh/vars/main.yml @@ -0,0 +1,12 @@ +############################################################################## +## Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others. +## +## All rights reserved. This program and the accompanying materials +## are made available under the terms of the Apache License, Version 2.0 +## which accompanies this distribution, and is available at +## http://www.apache.org/licenses/LICENSE-2.0 +############################################################################### +--- +packages_noarch: [] + +services_noarch: [] diff --git a/deploy/adapters/ansible/roles/ha/templates/haproxy.cfg b/deploy/adapters/ansible/roles/ha/templates/haproxy.cfg index 8bc6a17c..222b5561 100644 --- a/deploy/adapters/ansible/roles/ha/templates/haproxy.cfg +++ b/deploy/adapters/ansible/roles/ha/templates/haproxy.cfg @@ -169,6 +169,17 @@ listen proxy-ceilometer_api_cluster server {{ host }} {{ ip }}:8777 weight 1 check inter 2000 rise 2 fall 5 {% endfor %} +listen proxy-aodh_api_cluster + bind {{ internal_vip.ip }}:8042 + bind {{ public_vip.ip }}:8042 + mode tcp + option tcp-check + option tcplog + balance source +{% for host,ip in haproxy_hosts.items() %} + server {{ host }} {{ ip }}:8042 weight 1 check inter 2000 rise 2 fall 5 +{% endfor %} + listen proxy-dashboarad bind {{ public_vip.ip }}:80 mode http diff --git a/deploy/adapters/ansible/roles/keystone/vars/main.yml b/deploy/adapters/ansible/roles/keystone/vars/main.yml index 9a7312e9..58751dfd 100644 --- a/deploy/adapters/ansible/roles/keystone/vars/main.yml +++ b/deploy/adapters/ansible/roles/keystone/vars/main.yml @@ -52,6 +52,14 @@ os_services: internalurl: "http://{{ internal_vip.ip }}:8777" adminurl: "http://{{ internal_vip.ip }}:8777" + - name: aodh + type: alarming + region: regionOne + description: "OpenStack Telemetry" + publicurl: "http://{{ public_vip.ip }}:8042" + internalurl: "http://{{ internal_vip.ip }}:8042" + adminurl: "http://{{ internal_vip.ip }}:8042" + - name: cinder type: volume region: regionOne @@ -134,6 +142,13 @@ os_users: tenant: service tenant_description: "Service Tenant" + - user: aodh + password: "{{ AODH_PASS }}" + email: aodh@admin.com + role: admin + tenant: service + tenant_description: "Service Tenant" + - user: heat password: "{{ HEAT_PASS }}" email: heat@admin.com -- cgit 1.2.3-korg