Fix ceilometer issue 35/45435/4
authorwutianwei <wutianwei1@huawei.com>
Wed, 18 Oct 2017 03:19:37 +0000 (11:19 +0800)
committerwutianwei <wutianwei1@huawei.com>
Wed, 18 Oct 2017 05:21:01 +0000 (13:21 +0800)
OSA don't maintain the ceilometer component.
We change the OSA code to make ceilometer work.
1. create ceilometer database
2. change the ceilometer policy
3. change the ceilometer config
4. change the OS_AUTH_TYPE in openrc

Change-Id: I2d8630a0c50f5c6bd1e86171cae1fa8f9934334b
Signed-off-by: wutianwei <wutianwei1@huawei.com>
deploy/adapters/ansible/roles/config-osa/files/policy.json [new file with mode: 0644]
deploy/adapters/ansible/roles/config-osa/tasks/main.yml
deploy/adapters/ansible/roles/config-osa/tasks/meters.yml [new file with mode: 0644]

diff --git a/deploy/adapters/ansible/roles/config-osa/files/policy.json b/deploy/adapters/ansible/roles/config-osa/files/policy.json
new file mode 100644 (file)
index 0000000..0aa0a3d
--- /dev/null
@@ -0,0 +1,15 @@
+{
+    "context_is_admin": "role:admin",
+    "segregation": "rule:context_is_admin",
+
+    "telemetry:get_samples": "",
+    "telemetry:get_sample": "",
+    "telemetry:query_sample": "",
+    "telemetry:create_samples": "",
+
+    "telemetry:compute_statistics": "",
+    "telemetry:get_meters": "",
+
+    "telemetry:get_resource": "",
+    "telemetry:get_resources": "",
+}
index 39e09f7..d2ce5c3 100755 (executable)
     dest: /etc/ansible/roles/repo_build/tasks/main.yml
     insertafter: "^- include: repo_post_build.yml"
     line: "- include: repo_fix_pandas.yml"
+
+- include: meters.yml
diff --git a/deploy/adapters/ansible/roles/config-osa/tasks/meters.yml b/deploy/adapters/ansible/roles/config-osa/tasks/meters.yml
new file mode 100644 (file)
index 0000000..163fc69
--- /dev/null
@@ -0,0 +1,71 @@
+#############################################################################
+# Copyright (c) 2017 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: modify the aodh haproxy config
+  replace:
+    dest: /opt/openstack-ansible/playbooks/vars/configs/haproxy_config.yml
+    regexp: '- "expect status 401"'
+    replace: '- "expect status 200"'
+
+- name: add OS_AUTH_TYPE in openrc
+  lineinfile:
+    dest: /etc/ansible/roles/openstack_openrc/templates/openrc.j2
+    line: "export OS_AUTH_TYPE=password"
+
+- name: copy the ceilometer policy yaml
+  copy:
+    dest: /etc/ansible/roles/os_ceilometer/templates/policy.json.j2
+    src: policy.json
+    mode: 0664
+
+- name: replace the ceilometer policy
+  lineinfile:
+    dest: /etc/ansible/roles/os_ceilometer/tasks/ceilometer_post_install.yml
+    regexp: "ceilometer_policy_user_content"
+    line: '      src: "policy.json.j2"'
+    backrefs: "yes"
+
+- name: modify the os-ceilometer-install.yml
+  blockinfile:
+    dest: /opt/openstack-ansible/playbooks/os-ceilometer-install.yml
+    insertbefore: "common-tasks/package-cache-proxy.yml"
+    block: |
+      # create ceilometer db
+          - include: common-tasks/mysql-db-user.yml
+            static: no
+            vars: {% raw %}
+              user_name: "{{ ceilometer_galera_user }}"
+              password: "{{ ceilometer_container_db_password }}"
+              login_host: "{{ ceilometer_galera_address }}"
+              db_name: "{{ ceilometer_galera_database }}"
+            when: inventory_hostname == groups['ceilometer_all'][0]{% endraw %}
+
+- name: modify the os-ceilometer-install.yml
+  lineinfile:
+    dest: /opt/openstack-ansible/playbooks/os-ceilometer-install.yml
+    insertafter: "is_metal"
+    line: "{{ item }}"
+  with_items:
+    - "    ceilometer_galera_user: ceilometer"
+    - "    ceilometer_galera_database: ceilometer"
+
+- name: modify the os-ceilometer-install.yml
+  lineinfile:
+    dest: /opt/openstack-ansible/playbooks/os-ceilometer-install.yml
+    insertafter: "is_metal"
+    line: '   {% raw %} ceilometer_galera_address: "{{ galera_address }}"{% endraw %}'
+
+# yamllint disable rule:line-length
+- name: change the ceilometer.conf.j2
+  blockinfile:
+    dest: /etc/ansible/roles/os_ceilometer/templates/ceilometer.conf.j2
+    block: |
+      [database]{% raw %}
+      connection = mysql+pymysql://{{ ceilometer_galera_user }}:{{ ceilometer_container_db_password }}@{{ceilometer_galera_address }}/{{ ceilometer_galera_database }}?charset=utf86{% endraw %}
+# yamllint enable rule:line-length