Fix Aodh Bug 21/28221/2
authorHarry Huang <huangxiangyu5@huawei.com>
Tue, 7 Feb 2017 10:48:49 +0000 (18:48 +0800)
committerHarry Huang <huangxiangyu5@huawei.com>
Tue, 7 Feb 2017 11:52:43 +0000 (19:52 +0800)
JIRA: COMPASS-522

Bug:
Connection error happens when using aodh command.
Curl aodh-api also returns empty reply.

Solution:
Use apache to be aodh api server. Disable aodh-api
service. Delete aodh-api restart in ext-network role
to avoid aodh-api start again.

Change-Id: I04a4af38325bcbe4a0b86ec3d3beb7c9f3abd73b
Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
deploy/adapters/ansible/roles/aodh/handlers/main.yml
deploy/adapters/ansible/roles/aodh/tasks/aodh_install.yml
deploy/adapters/ansible/roles/aodh/templates/wsgi-aodh.conf.j2 [new file with mode: 0644]
deploy/adapters/ansible/roles/aodh/vars/Debian.yml
deploy/adapters/ansible/roles/aodh/vars/RedHat.yml
deploy/adapters/ansible/roles/ext-network/vars/Debian.yml
deploy/adapters/ansible/roles/ext-network/vars/RedHat.yml

index 4ff2a4f..983de9f 100644 (file)
 - name: restart aodh services
   service: name={{ item }} state=restarted enabled=yes
   with_items: "{{ services | union(services_noarch) }}"
+
+- name: aodh reload apache
+  service: name={{ item }} state=reloaded
+  with_items: "{{ http_service_name }}"
+
+- name: aodh restart apache
+  service: name={{ item }} state=restarted enabled=yes
+  with_items: "{{ http_service_name }}"
index 4b86f7f..4e2e865 100644 (file)
     - restart aodh services
 
 - name: write services to monitor list
-  lineinfile: dest=/opt/service create=yes line='{{ item }}'
+  lineinfile: dest=/opt/service create=yes line={{ item }}
   with_items: "{{ services | union(services_noarch) }}"
 
 - name: remove default sqlite db
   shell: rm /var/lib/aodh/aodh.sqlite || touch aodh.sqllite.db.removed
+
+- name: disable aodh-api service
+  service: name={{ item }} state=stopped enabled=no
+  with_items: "{{ api_service }}"
+
+- name: add listen port
+  lineinfile:
+    dest: '{{ apache_config_dir }}/ports.conf'
+    regexp: "^Listen {{ internal_ip }}:8042"
+    line: "Listen {{ internal_ip }}:8042"
+  notify: aodh restart apache
+
+- name: create WSGIScriptAlias Path
+  file:
+    path: /var/www/cgi-bin/aodh
+    state: directory
+    mode: 0755
+
+- name: copy WSGIScriptAlias file
+  shell: |
+    cp {{WSGIScriptAlias_file}} /var/www/cgi-bin/aodh/app;
+
+- name: update apache2 configs
+  template:
+    src: wsgi-aodh.conf.j2
+    dest: '{{ apache_config_dir }}/sites-available/aodh.conf'
+  when: ansible_os_family == 'Debian'
+  notify: aodh reload apache
+
+- name: enable aodh server
+  file:
+    src: "{{ apache_config_dir }}/sites-available/aodh.conf"
+    dest: "{{ apache_config_dir }}/sites-enabled/aodh.conf"
+    state: "link"
+  when: ansible_os_family == 'Debian'
+  notify: aodh reload apache
+
+- name: update apache2 configs
+  template:
+    src: wsgi-aodh.conf.j2
+    dest: '{{ apache_config_dir }}/aodh.conf'
+  when: ansible_os_family == 'RedHat'
+  notify: aodh reload apache
diff --git a/deploy/adapters/ansible/roles/aodh/templates/wsgi-aodh.conf.j2 b/deploy/adapters/ansible/roles/aodh/templates/wsgi-aodh.conf.j2
new file mode 100644 (file)
index 0000000..8d71075
--- /dev/null
@@ -0,0 +1,28 @@
+{% set work_threads = (ansible_processor_vcpus + 1) // 2 %}
+{% if work_threads > 10 %}
+{%  set work_threads = 10 %}
+{% endif %}
+
+<VirtualHost {{ internal_ip }}:8042>
+    WSGIDaemonProcess aodh-api processes=4 threads={{ work_threads }} user=aodh group=aodh display-name=%{GROUP}
+    WSGIProcessGroup aodh-api
+    WSGIScriptAlias / /var/www/cgi-bin/aodh/app
+    WSGIApplicationGroup %{GLOBAL}
+    <IfVersion >= 2.4>
+        ErrorLogFormat "%{cu}t %M"
+    </IfVersion>
+    ErrorLog /var/log/{{ http_service_name }}/aodh.log
+    CustomLog /var/log/{{ http_service_name }}/aodh_access.log combined
+
+    <Directory /usr/lib/python2.7/dist-packages/aodh/api/>
+        <IfVersion >= 2.4>
+            Require all granted
+        </IfVersion>
+        <IfVersion < 2.4>
+            Order allow,deny
+            Allow from all
+        </IfVersion>
+    </Directory>
+</VirtualHost>
+
+WSGISocketPrefix /var/run/{{ http_service_name }}
index 9bf4ad7..edf7364 100644 (file)
@@ -16,7 +16,12 @@ packages:
   - python-aodhclient
 
 services:
-  - aodh-api
   - aodh-notifier
   - aodh-evaluator
   - aodh-listener
+
+api_service: aodh-api
+
+apache_config_dir: /etc/apache2
+http_service_name: apache2
+WSGIScriptAlias_file: /usr/lib/python2.7/dist-packages/aodh/api/app.wsgi
index 3d25bd6..dba345f 100644 (file)
@@ -16,7 +16,12 @@ packages:
   - python-aodhclient
 
 services:
-  - openstack-aodh-api
   - openstack-aodh-notifier
   - openstack-aodh-evaluator
   - openstack-aodh-listener
+
+api_service: openstack-aodh-api
+
+apache_config_dir: /etc/httpd/conf.d
+http_service_name: httpd
+WSGIScriptAlias_file: /usr/lib/python2.7/site-packages/aodh/api/app.wsgi
index 8cebcb4..069afc1 100644 (file)
@@ -10,8 +10,6 @@
 api_services:
   - nova-api
   - glance-api
-  - ceilometer-api
   - heat-api
   - heat-api-cfn
-  - aodh-api
   - cinder-api
index f595d7b..47fc4a3 100644 (file)
@@ -10,7 +10,6 @@
 api_services:
   - openstack-nova-api
   - openstack-glance-api
-  - openstack-ceilometer-api
   - openstack-heat-api
   - openstack-heat-api-cfn
   - openstack-cinder-api