From 00826d9f9131b5b3d76d01c13912496ec6067204 Mon Sep 17 00:00:00 2001 From: "carey.xu" Date: Mon, 14 Mar 2016 15:38:33 +0800 Subject: seperate apache2 installtion from dashboard JIRA: COMPASS-342 Change-Id: I8ddbef46486dbd22f1324bda2d04f7a192b2148e Signed-off-by: carey.xu --- .../ansible/openstack/HA-ansible-multinodes.yml | 1 + .../ansible/roles/apache/handlers/main.yml | 12 ++++ .../adapters/ansible/roles/apache/tasks/main.yml | 30 ++++++++++ .../apache/templates/openstack-dashboard.conf.j2 | 15 +++++ .../ansible/roles/apache/templates/ports.conf.j2 | 1 + .../adapters/ansible/roles/apache/vars/Debian.yml | 17 ++++++ .../adapters/ansible/roles/apache/vars/RedHat.yml | 17 ++++++ deploy/adapters/ansible/roles/apache/vars/main.yml | 12 ++++ .../ansible/roles/dashboard/handlers/main.yml | 12 ++++ .../ansible/roles/dashboard/tasks/main.yml | 67 +++++++++++++++++----- .../templates/openstack-dashboard.conf.j2 | 15 +++++ .../ansible/roles/dashboard/vars/Debian.yml | 9 +-- .../ansible/roles/dashboard/vars/RedHat.yml | 9 +-- .../ansible/roles/memcached/handlers/main.yml | 0 14 files changed, 189 insertions(+), 28 deletions(-) create mode 100755 deploy/adapters/ansible/roles/apache/handlers/main.yml create mode 100755 deploy/adapters/ansible/roles/apache/tasks/main.yml create mode 100755 deploy/adapters/ansible/roles/apache/templates/openstack-dashboard.conf.j2 create mode 100644 deploy/adapters/ansible/roles/apache/templates/ports.conf.j2 create mode 100755 deploy/adapters/ansible/roles/apache/vars/Debian.yml create mode 100755 deploy/adapters/ansible/roles/apache/vars/RedHat.yml create mode 100755 deploy/adapters/ansible/roles/apache/vars/main.yml create mode 100755 deploy/adapters/ansible/roles/dashboard/handlers/main.yml create mode 100755 deploy/adapters/ansible/roles/dashboard/templates/openstack-dashboard.conf.j2 mode change 100644 => 100755 deploy/adapters/ansible/roles/memcached/handlers/main.yml (limited to 'deploy') diff --git a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml index 787cf97c..6df1d0d9 100644 --- a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml +++ b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml @@ -61,6 +61,7 @@ max_fail_percentage: 0 roles: - memcached + - apache - database - mq - keystone diff --git a/deploy/adapters/ansible/roles/apache/handlers/main.yml b/deploy/adapters/ansible/roles/apache/handlers/main.yml new file mode 100755 index 00000000..0f28dc24 --- /dev/null +++ b/deploy/adapters/ansible/roles/apache/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 apache related services + service: name={{ item }} state=restarted enabled=yes + with_items: services| union(services_noarch) diff --git a/deploy/adapters/ansible/roles/apache/tasks/main.yml b/deploy/adapters/ansible/roles/apache/tasks/main.yml new file mode 100755 index 00000000..11e49c0b --- /dev/null +++ b/deploy/adapters/ansible/roles/apache/tasks/main.yml @@ -0,0 +1,30 @@ +############################################################################## +# 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 packages + action: "{{ ansible_pkg_mgr }} name={{ item }} state=latest update_cache=yes" + with_items: packages | union(packages_noarch) + +- name: assure listen port exist + template: + dest: '{{ apache_config_dir }}/ports.conf' + src: ports.conf.j2 + notify: + - restart dashboard services + +- name: remove default listen port on centos + lineinfile: + dest: /etc/httpd/conf/httpd.conf + state: absent + regexp: 'Listen 80' + when: ansible_os_family == 'RedHat' + +- meta: flush_handlers diff --git a/deploy/adapters/ansible/roles/apache/templates/openstack-dashboard.conf.j2 b/deploy/adapters/ansible/roles/apache/templates/openstack-dashboard.conf.j2 new file mode 100755 index 00000000..403fcc22 --- /dev/null +++ b/deploy/adapters/ansible/roles/apache/templates/openstack-dashboard.conf.j2 @@ -0,0 +1,15 @@ +{% set work_threads = (ansible_processor_vcpus + 1) // 2 %} + + + WSGIScriptAlias /horizon {{ horizon_dir }}/wsgi/django.wsgi + WSGIDaemonProcess horizon user=horizon group=horizon processes={{ work_threads }} threads={{ work_threads }} + WSGIProcessGroup horizon + Alias /static {{ horizon_dir }}/static/ + Alias /horizon/static {{ horizon_dir }}/static/ + + Order allow,deny + Allow from all + + + + diff --git a/deploy/adapters/ansible/roles/apache/templates/ports.conf.j2 b/deploy/adapters/ansible/roles/apache/templates/ports.conf.j2 new file mode 100644 index 00000000..be27d195 --- /dev/null +++ b/deploy/adapters/ansible/roles/apache/templates/ports.conf.j2 @@ -0,0 +1 @@ +Listen {{ internal_ip }}:80 diff --git a/deploy/adapters/ansible/roles/apache/vars/Debian.yml b/deploy/adapters/ansible/roles/apache/vars/Debian.yml new file mode 100755 index 00000000..95e941eb --- /dev/null +++ b/deploy/adapters/ansible/roles/apache/vars/Debian.yml @@ -0,0 +1,17 @@ +############################################################################## +# 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: + - apache2 + - libapache2-mod-wsgi + +services: + - apache2 + +apache_config_dir: /etc/apache2 diff --git a/deploy/adapters/ansible/roles/apache/vars/RedHat.yml b/deploy/adapters/ansible/roles/apache/vars/RedHat.yml new file mode 100755 index 00000000..5211a12f --- /dev/null +++ b/deploy/adapters/ansible/roles/apache/vars/RedHat.yml @@ -0,0 +1,17 @@ +############################################################################## +# 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: + - mod_wsgi + - httpd + +services: + - httpd + +apache_config_dir: /etc/httpd/conf.d diff --git a/deploy/adapters/ansible/roles/apache/vars/main.yml b/deploy/adapters/ansible/roles/apache/vars/main.yml new file mode 100755 index 00000000..f6fef749 --- /dev/null +++ b/deploy/adapters/ansible/roles/apache/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/dashboard/handlers/main.yml b/deploy/adapters/ansible/roles/dashboard/handlers/main.yml new file mode 100755 index 00000000..62e0b8e5 --- /dev/null +++ b/deploy/adapters/ansible/roles/dashboard/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 dashboard services + service: name={{ item }} state=restarted enabled=yes + with_items: services | union(services_noarch) diff --git a/deploy/adapters/ansible/roles/dashboard/tasks/main.yml b/deploy/adapters/ansible/roles/dashboard/tasks/main.yml index 6482017c..ce4fd978 100644 --- a/deploy/adapters/ansible/roles/dashboard/tasks/main.yml +++ b/deploy/adapters/ansible/roles/dashboard/tasks/main.yml @@ -9,25 +9,58 @@ --- - include_vars: "{{ ansible_os_family }}.yml" -- name: install http packages - action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" - with_items: http_packages - -- name: set http config - lineinfile: dest={{ http_config_file }} regexp='^Listen' line='Listen {{ internal_ip }}:80' - -- name: restart http services - service: name={{ http_service }} state=restarted enabled=yes - -- name: write services to monitor list - lineinfile: dest=/opt/service create=yes line='{{ http_service }}' +- name: disable auto start + copy: + content: "#!/bin/sh\nexit 101" + dest: "/usr/sbin/policy-rc.d" + mode: 0755 + when: ansible_os_family == "Debian" - name: install dashboard packages action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" with_items: packages | union(packages_noarch) +- name: enable auto start + file: + path=/usr/sbin/policy-rc.d + state=absent + when: ansible_os_family == "Debian" + - name: remove ubuntu theme action: "{{ ansible_pkg_mgr }} name=openstack-dashboard-ubuntu-theme state=absent" + when: ansible_os_family == 'Debian' + notify: + - restart dashboard services + +- name: remove default apache2 config + file: + path: '{{ item }}' + state: absent + when: ansible_os_family == 'Debian' + with_items: + - '{{ apache_config_dir }}/conf-available/openstack-dashboard.conf' + - '{{ apache_config_dir }}/conf-enabled/openstack-dashboard.conf' + - '{{ apache_config_dir }}/sites-available/000-default.conf' + - '{{ apache_config_dir }}/sites-enabled/000-default.conf' + notify: + - restart dashboard services + +- name: update apache2 configs + template: + src: openstack-dashboard.conf.j2 + dest: '{{ apache_config_dir }}/sites-available/openstack-dashboard.conf' + when: ansible_os_family == 'Debian' + notify: + - restart dashboard services + +- name: enable dashboard + file: + src: "/etc/apache2/sites-available/openstack-dashboard.conf" + dest: "/etc/apache2/sites-enabled/openstack-dashboard.conf" + state: "link" + when: ansible_os_family == 'Debian' + notify: + - restart dashboard services - name: update ubuntu horizon settings lineinfile: @@ -44,11 +77,15 @@ - regexp: '^OPENSTACK_HOST[ \t]*=.*' line: 'OPENSTACK_HOST = "{{ internal_ip }}"' when: ansible_os_family == 'Debian' + notify: + - restart dashboard services - name: precompile horizon css shell: /usr/bin/python /usr/share/openstack-dashboard/manage.py compress --force ignore_errors: True when: ansible_os_family == 'Debian' + notify: + - restart dashboard services - name: update redhat version horizon settings lineinfile: @@ -65,7 +102,7 @@ - regexp: '^OPENSTACK_HOST[ \t]*=.*' line: 'OPENSTACK_HOST = "{{ internal_ip }}"' when: ansible_os_family == 'RedHat' + notify: + - restart dashboard services -- name: restart dashboard services - service: name={{ item }} state=restarted enabled=yes - with_items: services | union(services_noarch) +- meta: flush_handlers diff --git a/deploy/adapters/ansible/roles/dashboard/templates/openstack-dashboard.conf.j2 b/deploy/adapters/ansible/roles/dashboard/templates/openstack-dashboard.conf.j2 new file mode 100755 index 00000000..403fcc22 --- /dev/null +++ b/deploy/adapters/ansible/roles/dashboard/templates/openstack-dashboard.conf.j2 @@ -0,0 +1,15 @@ +{% set work_threads = (ansible_processor_vcpus + 1) // 2 %} + + + WSGIScriptAlias /horizon {{ horizon_dir }}/wsgi/django.wsgi + WSGIDaemonProcess horizon user=horizon group=horizon processes={{ work_threads }} threads={{ work_threads }} + WSGIProcessGroup horizon + Alias /static {{ horizon_dir }}/static/ + Alias /horizon/static {{ horizon_dir }}/static/ + + Order allow,deny + Allow from all + + + + diff --git a/deploy/adapters/ansible/roles/dashboard/vars/Debian.yml b/deploy/adapters/ansible/roles/dashboard/vars/Debian.yml index 4d9023db..5c9b032e 100644 --- a/deploy/adapters/ansible/roles/dashboard/vars/Debian.yml +++ b/deploy/adapters/ansible/roles/dashboard/vars/Debian.yml @@ -7,15 +7,10 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## --- -http_packages: - - apache2 - - libapache2-mod-wsgi - -http_service: apache2 - packages: [] services: - memcached -http_config_file: "/etc/apache2/ports.conf" +apache_config_dir: /etc/apache2 +horizon_dir: /usr/share/openstack-dashboard/openstack_dashboard diff --git a/deploy/adapters/ansible/roles/dashboard/vars/RedHat.yml b/deploy/adapters/ansible/roles/dashboard/vars/RedHat.yml index 790567f9..d213381a 100644 --- a/deploy/adapters/ansible/roles/dashboard/vars/RedHat.yml +++ b/deploy/adapters/ansible/roles/dashboard/vars/RedHat.yml @@ -7,14 +7,11 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## --- -http_packages: - - httpd - -http_service: httpd - packages: - mod_wsgi + - httpd -services: [] +services: + - httpd http_config_file: "/etc/httpd/conf/httpd.conf" diff --git a/deploy/adapters/ansible/roles/memcached/handlers/main.yml b/deploy/adapters/ansible/roles/memcached/handlers/main.yml old mode 100644 new mode 100755 -- cgit 1.2.3-korg