openstack-ansible-os_horizon/tasks/horizon_post_install.yml
Markos Chandras 33e7a677c1 tasks: horizon_post_install: Ensure horizon dashboard directory is accessible
During the DB migration step, the horizon user needs full access to the
directory so we need to ensure that all the permissions are set
correctly before we reach that point.

Change-Id: I52933cf52b33bf81a2cee2f18665a1760760b08f
2018-07-19 16:41:24 +01:00

115 lines
3.8 KiB
YAML

---
# Copyright 2014, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Ensure horizon local dir is accessible by user
file:
path: "{{ horizon_lib_dir }}"
state: directory
owner: "{{ horizon_system_user_name }}"
group: "{{ horizon_system_group_name }}"
mode: "0755"
recurse: yes
- name: Setup Horizon config(s)
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ item.owner|default(horizon_system_user_name) }}"
group: "{{ horizon_system_group_name }}"
mode: "{{ item.mode }}"
with_items:
- { src: "horizon_local_settings.py.j2", dest: "/etc/horizon/local_settings.py", owner: "root", mode: "0640" }
- { src: "horizon-manage.py.j2", dest: "{{ horizon_bin }}/horizon-manage.py", mode: "0755" }
- { src: "80_admin_default_panel.py.j2", dest: "{{ horizon_lib_dir }}/openstack_dashboard/local/enabled/_80_admin_default_panel.py", mode: "0755" }
notify: Restart apache2
- name: Uploading horizon custom files
copy:
src: "{{ item.value.src }}"
dest: "{{ horizon_lib_dir }}/openstack_dashboard/static/dashboard/{{ item.value.dest }}"
with_dict: "{{ horizon_custom_uploads | default({}) }}"
- name: Enable project panels
file:
src: "{{ item.src }}"
path: "{{ item.path }}"
state: "{{ item.state }}"
with_items: "{{ horizon_panels }}"
notify: Restart apache2
- name: Create horizon links
file:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ horizon_system_user_name }}"
group: "{{ horizon_system_group_name }}"
state: "link"
with_items:
- { src: "/etc/horizon/local_settings.py", dest: "{{ horizon_lib_dir }}/openstack_dashboard/local/local_settings.py" }
- name: Setup Horizon config(s)
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ horizon_system_user_name }}"
group: "{{ horizon_system_group_name }}"
with_items:
- { src: "horizon_django.wsgi.j2", dest: "{{ horizon_lib_wsgi_file }}" }
notify: Restart apache2
- name: Create customization module directory
file:
path: "{{ horizon_lib_dir }}/horizon_customization"
state: directory
owner: "{{ horizon_system_user_name }}"
group: "{{ horizon_system_group_name }}"
mode: "0755"
when: horizon_customization_module is defined
- name: Drop horizon customization module
template:
src: "{{ horizon_customization_module }}"
dest: "{{ horizon_lib_dir }}/horizon_customization/__init__.py"
owner: "{{ horizon_system_user_name }}"
group: "{{ horizon_system_group_name }}"
mode: "0644"
notify: Restart apache2
when: horizon_customization_module is defined
- name: Compile messages for translation
command: "{{ horizon_bin }}/horizon-manage.py compilemessages"
args:
chdir: "{{ horizon_lib_dir }}/{{ item }}"
changed_when: false
with_items:
- horizon
- openstack_dashboard
register: async_compile_messages
async: 600
poll: 0
- name: Collect and compress static files
command: "{{ item }}"
become: yes
become_user: "{{ horizon_system_user_name }}"
changed_when: false
with_items:
- "{{ horizon_bin }}/horizon-manage.py collectstatic --noinput"
- "{{ horizon_bin }}/horizon-manage.py compress --force"
notify: Restart apache2
register: async_compress_static_files
async: 600
poll: 0