Add Aodh support for Compass 61/12561/2
authorYifei Xue <xueyifei@huawei.com>
Fri, 22 Apr 2016 08:09:02 +0000 (16:09 +0800)
committerYifei Xue <xueyifei@huawei.com>
Wed, 27 Apr 2016 06:16:37 +0000 (14:16 +0800)
JIRA: COMPASS-374

Change-Id: I923f66b5ab42a0b30d0f91701873d36f8e5147ba
Signed-off-by: Yifei Xue <xueyifei@huawei.com>
12 files changed:
deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
deploy/adapters/ansible/openstack/group_vars/all
deploy/adapters/ansible/roles/aodh/handlers/main.yml [new file with mode: 0644]
deploy/adapters/ansible/roles/aodh/tasks/main.yml [new file with mode: 0644]
deploy/adapters/ansible/roles/aodh/templates/aodh.conf.j2 [new file with mode: 0644]
deploy/adapters/ansible/roles/aodh/templates/api_paste.ini.j2 [new file with mode: 0644]
deploy/adapters/ansible/roles/aodh/templates/policy.json.j2 [new file with mode: 0644]
deploy/adapters/ansible/roles/aodh/vars/Debian.yml [new file with mode: 0644]
deploy/adapters/ansible/roles/aodh/vars/RedHat.yml [new file with mode: 0644]
deploy/adapters/ansible/roles/aodh/vars/main.yml [new file with mode: 0644]
deploy/adapters/ansible/roles/ha/templates/haproxy.cfg
deploy/adapters/ansible/roles/keystone/vars/main.yml

index 6df1d0d..d8b82c7 100644 (file)
@@ -75,6 +75,7 @@
 #    - ext-network
     - dashboard
     - heat
+#    - aodh
 
 - hosts: all
   remote_user: root
index 1efcc1c..79859d0 100644 (file)
@@ -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 (file)
index 0000000..e1084c8
--- /dev/null
@@ -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 (file)
index 0000000..aa23b9e
--- /dev/null
@@ -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 (file)
index 0000000..eac6e5b
--- /dev/null
@@ -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 (file)
index 0000000..151789c
--- /dev/null
@@ -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 (file)
index 0000000..4fd873e
--- /dev/null
@@ -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 (file)
index 0000000..bdf4655
--- /dev/null
@@ -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 (file)
index 0000000..3d18288
--- /dev/null
@@ -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 (file)
index 0000000..b17f6ed
--- /dev/null
@@ -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: []
index 8bc6a17..222b556 100644 (file)
@@ -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
index 9a7312e..58751df 100644 (file)
@@ -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