openstack-ansible-os_horizon/tasks/main.yml
Markos Chandras 2af1b7a6c4 Add support for using distribution packages for OpenStack services
Distributions provide packages for the OpenStack services so we add
support for using these instead of the pip ones.

Implements: blueprint openstack-distribution-packages
Change-Id: Ie6eeff541a319967715e619dcdc26177aec5be72
2018-07-23 17:29:14 +01:00

130 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: Gather variables for each operating system
include_vars: "{{ item }}"
with_first_found:
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
- "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
- "{{ ansible_distribution | lower }}.yml"
- "{{ ansible_os_family | lower }}.yml"
tags:
- always
- name: Fail if service was deployed using a different installation method
fail:
msg: "Switching installation methods for OpenStack services is not supported"
when:
- ansible_local is defined
- ansible_local.openstack_ansible is defined
- ansible_local.openstack_ansible.horizon is defined
- ansible_local.openstack_ansible.horizon.install_method is defined
- ansible_local.openstack_ansible.horizon.install_method != horizon_install_method
- name: Gather variables for installation method
include_vars: "{{ horizon_install_method }}_install.yml"
tags:
- always
- include: horizon_pre_install.yml
tags:
- horizon-install
- include: horizon_install.yml
tags:
- horizon-install
- include: horizon_post_install.yml
tags:
- horizon-config
- include: horizon_db_setup.yml
static: no
when: inventory_hostname == ansible_play_hosts[0]
tags:
- horizon-config
- include: horizon_ssl_self_signed.yml
static: no
when:
- not horizon_external_ssl | bool
- horizon_user_ssl_cert is not defined or horizon_user_ssl_key is not defined
tags:
- horizon-config
- include: horizon_ssl_user_provided.yml
static: no
when: not horizon_external_ssl | bool
tags:
- horizon-config
- name: Update the ca certificates
command: "update-ca-certificates -f"
when:
- not horizon_external_ssl | bool
- ansible_pkg_mgr == 'apt'
tags:
- horizon-config
- horizon-ssl
- include: horizon_service_setup.yml
tags:
- horizon-config
- name: Ensure messages are compiled for translation
async_status:
jid: "{{ item.ansible_job_id }}"
become: yes
become_user: "{{ horizon_system_user_name }}"
register: async_compile_messages_check
until: async_compile_messages_check.finished
retries: 300
with_items:
- "{{ async_compile_messages.results }}"
tags:
- horizon-config
# NOTE(mhayden): The async_status check here must be done as the horizon user
# since the original task ran as that user. This task will fail if it is run
# as root because the async status file is within the horizon user's home
# directory, not root's home directory.
- name: Ensure static files are collected and compressed
async_status:
jid: "{{ item.ansible_job_id }}"
become: yes
become_user: "{{ horizon_system_user_name }}"
register: async_compress_static_files_check
until: async_compress_static_files_check.finished
retries: 300
with_items:
- "{{ async_compress_static_files.results }}"
tags:
- horizon-config
- include: horizon_apache.yml
tags:
- horizon-config
- include: horizon_translations_update.yml
static: no
when: horizon_translations_update | bool
tags:
- horizon-config
- horizon-translations
- name: Flush handlers
meta: flush_handlers