summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcarey.xu <carey.xuhan@huawei.com>2016-03-14 15:38:33 +0800
committercarey xu <carey.xuhan@huawei.com>2016-03-18 06:41:56 +0000
commit00826d9f9131b5b3d76d01c13912496ec6067204 (patch)
treee6b81ec95c2ec555b6f4b5a0bfc4e957cec837b2
parent2490b7463f3a2fc86277f957945b92263495c01c (diff)
seperate apache2 installtion from dashboard
JIRA: COMPASS-342 Change-Id: I8ddbef46486dbd22f1324bda2d04f7a192b2148e Signed-off-by: carey.xu <carey.xuhan@huawei.com>
-rw-r--r--deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml1
-rwxr-xr-xdeploy/adapters/ansible/roles/apache/handlers/main.yml12
-rwxr-xr-xdeploy/adapters/ansible/roles/apache/tasks/main.yml30
-rwxr-xr-xdeploy/adapters/ansible/roles/apache/templates/openstack-dashboard.conf.j215
-rw-r--r--deploy/adapters/ansible/roles/apache/templates/ports.conf.j21
-rwxr-xr-xdeploy/adapters/ansible/roles/apache/vars/Debian.yml17
-rwxr-xr-xdeploy/adapters/ansible/roles/apache/vars/RedHat.yml17
-rwxr-xr-xdeploy/adapters/ansible/roles/apache/vars/main.yml12
-rwxr-xr-xdeploy/adapters/ansible/roles/dashboard/handlers/main.yml12
-rw-r--r--deploy/adapters/ansible/roles/dashboard/tasks/main.yml67
-rwxr-xr-xdeploy/adapters/ansible/roles/dashboard/templates/openstack-dashboard.conf.j215
-rw-r--r--deploy/adapters/ansible/roles/dashboard/vars/Debian.yml9
-rw-r--r--deploy/adapters/ansible/roles/dashboard/vars/RedHat.yml9
-rwxr-xr-x[-rw-r--r--]deploy/adapters/ansible/roles/memcached/handlers/main.yml0
14 files changed, 189 insertions, 28 deletions
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 %}
+
+<VirtualHost {{ internal_ip }}:80>
+ 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/
+ <Directory {{ horizon_dir }}/wsgi>
+ Order allow,deny
+ Allow from all
+ </Directory>
+</VirtualHost>
+
+
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 %}
+
+<VirtualHost {{ internal_ip }}:80>
+ 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/
+ <Directory {{ horizon_dir }}/wsgi>
+ Order allow,deny
+ Allow from all
+ </Directory>
+</VirtualHost>
+
+
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
index 4c3230c1..4c3230c1 100644..100755
--- a/deploy/adapters/ansible/roles/memcached/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/memcached/handlers/main.yml