diff options
author | Harry Huang <huangxiangyu5@huawei.com> | 2017-02-07 18:48:49 +0800 |
---|---|---|
committer | Harry Huang <huangxiangyu5@huawei.com> | 2017-02-07 19:52:43 +0800 |
commit | 42634c9d279f6c1db38e0926a787fc33c2ef826f (patch) | |
tree | c7c0ab2e2c25d63ade967108b8e0fa4949d3fbf2 | |
parent | 53916ab0e407f29b33a72c721f424284567636ce (diff) |
Fix Aodh Bug
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>
7 files changed, 92 insertions, 6 deletions
diff --git a/deploy/adapters/ansible/roles/aodh/handlers/main.yml b/deploy/adapters/ansible/roles/aodh/handlers/main.yml index 4ff2a4f9..983de9fc 100644 --- a/deploy/adapters/ansible/roles/aodh/handlers/main.yml +++ b/deploy/adapters/ansible/roles/aodh/handlers/main.yml @@ -10,3 +10,11 @@ - 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 }}" diff --git a/deploy/adapters/ansible/roles/aodh/tasks/aodh_install.yml b/deploy/adapters/ansible/roles/aodh/tasks/aodh_install.yml index 4b86f7fd..4e2e8655 100644 --- a/deploy/adapters/ansible/roles/aodh/tasks/aodh_install.yml +++ b/deploy/adapters/ansible/roles/aodh/tasks/aodh_install.yml @@ -21,8 +21,51 @@ - 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 index 00000000..8d71075e --- /dev/null +++ b/deploy/adapters/ansible/roles/aodh/templates/wsgi-aodh.conf.j2 @@ -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 }} diff --git a/deploy/adapters/ansible/roles/aodh/vars/Debian.yml b/deploy/adapters/ansible/roles/aodh/vars/Debian.yml index 9bf4ad7a..edf73641 100644 --- a/deploy/adapters/ansible/roles/aodh/vars/Debian.yml +++ b/deploy/adapters/ansible/roles/aodh/vars/Debian.yml @@ -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 diff --git a/deploy/adapters/ansible/roles/aodh/vars/RedHat.yml b/deploy/adapters/ansible/roles/aodh/vars/RedHat.yml index 3d25bd6c..dba345fb 100644 --- a/deploy/adapters/ansible/roles/aodh/vars/RedHat.yml +++ b/deploy/adapters/ansible/roles/aodh/vars/RedHat.yml @@ -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 diff --git a/deploy/adapters/ansible/roles/ext-network/vars/Debian.yml b/deploy/adapters/ansible/roles/ext-network/vars/Debian.yml index 8cebcb48..069afc14 100644 --- a/deploy/adapters/ansible/roles/ext-network/vars/Debian.yml +++ b/deploy/adapters/ansible/roles/ext-network/vars/Debian.yml @@ -10,8 +10,6 @@ api_services: - nova-api - glance-api - - ceilometer-api - heat-api - heat-api-cfn - - aodh-api - cinder-api diff --git a/deploy/adapters/ansible/roles/ext-network/vars/RedHat.yml b/deploy/adapters/ansible/roles/ext-network/vars/RedHat.yml index f595d7ba..47fc4a32 100644 --- a/deploy/adapters/ansible/roles/ext-network/vars/RedHat.yml +++ b/deploy/adapters/ansible/roles/ext-network/vars/RedHat.yml @@ -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 |