Standardise installation-related task files
Most IRR roles have identical pre_install and install YAML task files. This makes it easy to change them across the board. Horizon, however, has a number of tasks in the pre_install YAML file where on the other roles these tasks lie in the install YAML. This commit moves the following from horizon_pre_install to horizon_install.yml: Install requires pip packages Get local venv checksum Get remote venv checksum Attempt venv download Set horizon get_venv fact Remove existing venv Create horizon venv dir Unarchive pre-built venv Update virtualenv path Create horizon venv Create horizon links for venv Create static horizon dir Additionally, we delete the 'Create horizon venv' task as there should be no reason to install horizon_requires_pip_packages into the venv itself. This also requires moving 'Create horizon links for venv' and 'Create static horizon dir' to the end of horizon_install.yml since the venv does not exist at this point as the 'Install pip packages (venv)' still needs to run. With this change in place, it becomes easier to make changes across all roles as they should now all follow a similar pattern. Change-Id: Ie22b2ccdfb5e1f58b09c6740d16c9b538521143c
This commit is contained in:
parent
9f41da7883
commit
bfabfab93f
@ -65,6 +65,121 @@
|
|||||||
- horizon-install
|
- horizon-install
|
||||||
- horizon-apt-packages
|
- horizon-apt-packages
|
||||||
|
|
||||||
|
- name: Install requires pip packages
|
||||||
|
pip:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
extra_args: "{{ pip_install_options|default('') }}"
|
||||||
|
register: install_packages
|
||||||
|
until: install_packages|success
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
||||||
|
with_items:
|
||||||
|
- "{{ horizon_requires_pip_packages }}"
|
||||||
|
tags:
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Get local venv checksum
|
||||||
|
stat:
|
||||||
|
path: "/var/cache/{{ horizon_venv_download_url | basename }}"
|
||||||
|
get_md5: False
|
||||||
|
when:
|
||||||
|
- not horizon_developer_mode | bool
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
register: local_venv_stat
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Get remote venv checksum
|
||||||
|
uri:
|
||||||
|
url: "{{ horizon_venv_download_url | replace('tgz', 'checksum') }}"
|
||||||
|
return_content: True
|
||||||
|
when:
|
||||||
|
- not horizon_developer_mode | bool
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
register: remote_venv_checksum
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
# TODO: When project moves to ansible 2 we can pass this a sha256sum which will:
|
||||||
|
# a) allow us to remove force: yes
|
||||||
|
# b) allow the module to calculate the checksum of dest file which would
|
||||||
|
# result in file being downloaded only if provided and dest sha256sum
|
||||||
|
# checksums differ
|
||||||
|
- name: Attempt venv download
|
||||||
|
get_url:
|
||||||
|
url: "{{ horizon_venv_download_url }}"
|
||||||
|
dest: "/var/cache/{{ horizon_venv_download_url | basename }}"
|
||||||
|
force: yes
|
||||||
|
ignore_errors: true
|
||||||
|
register: get_venv
|
||||||
|
when:
|
||||||
|
- not horizon_developer_mode | bool
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- (local_venv_stat.stat.exists == False or
|
||||||
|
{{ local_venv_stat.stat.checksum is defined and local_venv_stat.stat.checksum != remote_venv_checksum.content | trim }})
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Set horizon get_venv fact
|
||||||
|
set_fact:
|
||||||
|
horizon_get_venv: "{{ get_venv }}"
|
||||||
|
when: horizon_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Remove existing venv
|
||||||
|
file:
|
||||||
|
path: "{{ horizon_venv_bin | dirname }}"
|
||||||
|
state: absent
|
||||||
|
when:
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- horizon_get_venv | changed
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Create horizon venv dir
|
||||||
|
file:
|
||||||
|
path: "{{ horizon_venv_bin | dirname }}"
|
||||||
|
state: directory
|
||||||
|
when:
|
||||||
|
- not horizon_developer_mode | bool
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- horizon_get_venv | changed
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Unarchive pre-built venv
|
||||||
|
unarchive:
|
||||||
|
src: "/var/cache/{{ horizon_venv_download_url | basename }}"
|
||||||
|
dest: "{{ horizon_venv_bin | dirname }}"
|
||||||
|
copy: "no"
|
||||||
|
when:
|
||||||
|
- not horizon_developer_mode | bool
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- horizon_get_venv | changed
|
||||||
|
notify: Restart apache2
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Update virtualenv path
|
||||||
|
command: >
|
||||||
|
virtualenv-tools --update-path=auto {{ horizon_venv_bin | dirname }}
|
||||||
|
when:
|
||||||
|
- not horizon_developer_mode | bool
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
- horizon_get_venv | success
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-pip-packages
|
||||||
|
|
||||||
- name: Install pip packages (venv)
|
- name: Install pip packages (venv)
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -100,3 +215,33 @@
|
|||||||
notify: Restart apache2
|
notify: Restart apache2
|
||||||
tags:
|
tags:
|
||||||
- horizon-pip-packages
|
- horizon-pip-packages
|
||||||
|
|
||||||
|
- name: Create horizon links for venv
|
||||||
|
file:
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
dest: "{{ item.dest }}"
|
||||||
|
owner: "{{ horizon_system_user_name }}"
|
||||||
|
group: "{{ horizon_system_group_name }}"
|
||||||
|
state: "link"
|
||||||
|
with_items:
|
||||||
|
- src: "{{ horizon_lib_dir | dirname }}/site-packages"
|
||||||
|
dest: "{{ horizon_lib_dir }}"
|
||||||
|
when:
|
||||||
|
- horizon_venv_enabled | bool
|
||||||
|
tags:
|
||||||
|
- horizon-install
|
||||||
|
- horizon-configs
|
||||||
|
|
||||||
|
- name: Create static horizon dir
|
||||||
|
file:
|
||||||
|
path: "{{ item.path }}"
|
||||||
|
state: "directory"
|
||||||
|
owner: "{{ item.owner|default(horizon_system_user_name) }}"
|
||||||
|
group: "{{ item.group|default(horizon_system_group_name) }}"
|
||||||
|
with_items:
|
||||||
|
- { path: "{{ horizon_lib_dir }}/static", mode: "2755" }
|
||||||
|
- { path: "{{ horizon_lib_dir }}/openstack_dashboard", mode: "2755" }
|
||||||
|
- { path: "{{ horizon_lib_dir }}/openstack_dashboard/local", mode: "2755" }
|
||||||
|
- { path: "{{ horizon_lib_dir }}/openstack_dashboard/local/enabled", mode: "2755" }
|
||||||
|
tags:
|
||||||
|
- horizon-dirs
|
||||||
|
@ -58,167 +58,6 @@
|
|||||||
tags:
|
tags:
|
||||||
- horizon-dirs
|
- horizon-dirs
|
||||||
|
|
||||||
- name: Install requires pip packages
|
|
||||||
pip:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: present
|
|
||||||
extra_args: "{{ pip_install_options|default('') }}"
|
|
||||||
register: install_packages
|
|
||||||
until: install_packages|success
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
with_items:
|
|
||||||
- "{{ horizon_requires_pip_packages }}"
|
|
||||||
tags:
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
- name: Get local venv checksum
|
|
||||||
stat:
|
|
||||||
path: "/var/cache/{{ horizon_venv_download_url | basename }}"
|
|
||||||
get_md5: False
|
|
||||||
when:
|
|
||||||
- not horizon_developer_mode | bool
|
|
||||||
- horizon_venv_enabled | bool
|
|
||||||
register: local_venv_stat
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
- name: Get remote venv checksum
|
|
||||||
uri:
|
|
||||||
url: "{{ horizon_venv_download_url | replace('tgz', 'checksum') }}"
|
|
||||||
return_content: True
|
|
||||||
when:
|
|
||||||
- not horizon_developer_mode | bool
|
|
||||||
- horizon_venv_enabled | bool
|
|
||||||
register: remote_venv_checksum
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
# TODO: When project moves to ansible 2 we can pass this a sha256sum which will:
|
|
||||||
# a) allow us to remove force: yes
|
|
||||||
# b) allow the module to calculate the checksum of dest file which would
|
|
||||||
# result in file being downloaded only if provided and dest sha256sum
|
|
||||||
# checksums differ
|
|
||||||
- name: Attempt venv download
|
|
||||||
get_url:
|
|
||||||
url: "{{ horizon_venv_download_url }}"
|
|
||||||
dest: "/var/cache/{{ horizon_venv_download_url | basename }}"
|
|
||||||
force: yes
|
|
||||||
ignore_errors: true
|
|
||||||
register: get_venv
|
|
||||||
when:
|
|
||||||
- not horizon_developer_mode | bool
|
|
||||||
- horizon_venv_enabled | bool
|
|
||||||
- (local_venv_stat.stat.exists == False or
|
|
||||||
{{ local_venv_stat.stat.checksum is defined and local_venv_stat.stat.checksum != remote_venv_checksum.content | trim }})
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
- name: Set horizon get_venv fact
|
|
||||||
set_fact:
|
|
||||||
horizon_get_venv: "{{ get_venv }}"
|
|
||||||
when: horizon_venv_enabled | bool
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
- name: Remove existing venv
|
|
||||||
file:
|
|
||||||
path: "{{ horizon_venv_bin | dirname }}"
|
|
||||||
state: absent
|
|
||||||
when:
|
|
||||||
- horizon_venv_enabled | bool
|
|
||||||
- horizon_get_venv | changed
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
- name: Create horizon venv dir
|
|
||||||
file:
|
|
||||||
path: "{{ horizon_venv_bin | dirname }}"
|
|
||||||
state: directory
|
|
||||||
when:
|
|
||||||
- not horizon_developer_mode | bool
|
|
||||||
- horizon_venv_enabled | bool
|
|
||||||
- horizon_get_venv | changed
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
- name: Unarchive pre-built venv
|
|
||||||
unarchive:
|
|
||||||
src: "/var/cache/{{ horizon_venv_download_url | basename }}"
|
|
||||||
dest: "{{ horizon_venv_bin | dirname }}"
|
|
||||||
copy: "no"
|
|
||||||
when:
|
|
||||||
- not horizon_developer_mode | bool
|
|
||||||
- horizon_venv_enabled | bool
|
|
||||||
- horizon_get_venv | changed
|
|
||||||
notify: Restart apache2
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
- name: Update virtualenv path
|
|
||||||
command: >
|
|
||||||
virtualenv-tools --update-path=auto {{ horizon_venv_bin | dirname }}
|
|
||||||
when:
|
|
||||||
- not horizon_developer_mode | bool
|
|
||||||
- horizon_venv_enabled | bool
|
|
||||||
- horizon_get_venv | success
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
- name: Create horizon venv
|
|
||||||
pip:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: present
|
|
||||||
virtualenv: "{{ horizon_venv_bin | dirname }}"
|
|
||||||
virtualenv_site_packages: "no"
|
|
||||||
extra_args: "{{ pip_install_options|default('') }}"
|
|
||||||
with_items:
|
|
||||||
- "{{ horizon_requires_pip_packages }}"
|
|
||||||
when:
|
|
||||||
- horizon_venv_enabled | bool
|
|
||||||
- horizon_get_venv | failed or horizon_developer_mode | bool
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-pip-packages
|
|
||||||
|
|
||||||
- name: Create horizon links for venv
|
|
||||||
file:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
owner: "{{ horizon_system_user_name }}"
|
|
||||||
group: "{{ horizon_system_group_name }}"
|
|
||||||
state: "link"
|
|
||||||
with_items:
|
|
||||||
- src: "{{ horizon_lib_dir | dirname }}/site-packages"
|
|
||||||
dest: "{{ horizon_lib_dir }}"
|
|
||||||
when:
|
|
||||||
- horizon_venv_enabled | bool
|
|
||||||
tags:
|
|
||||||
- horizon-install
|
|
||||||
- horizon-configs
|
|
||||||
|
|
||||||
- name: Create static horizon dir
|
|
||||||
file:
|
|
||||||
path: "{{ item.path }}"
|
|
||||||
state: "directory"
|
|
||||||
owner: "{{ item.owner|default(horizon_system_user_name) }}"
|
|
||||||
group: "{{ item.group|default(horizon_system_group_name) }}"
|
|
||||||
with_items:
|
|
||||||
- { path: "{{ horizon_lib_dir }}/static", mode: "2755" }
|
|
||||||
- { path: "{{ horizon_lib_dir }}/openstack_dashboard", mode: "2755" }
|
|
||||||
- { path: "{{ horizon_lib_dir }}/openstack_dashboard/local", mode: "2755" }
|
|
||||||
- { path: "{{ horizon_lib_dir }}/openstack_dashboard/local/enabled", mode: "2755" }
|
|
||||||
tags:
|
|
||||||
- horizon-dirs
|
|
||||||
|
|
||||||
- name: Test for log directory or link
|
- name: Test for log directory or link
|
||||||
shell: |
|
shell: |
|
||||||
if [ -h "/var/log/horizon" ]; then
|
if [ -h "/var/log/horizon" ]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user