a7955a9afe
Ansible 2.1.1 introduces a regression in the way conditional includes are handled which results in every task in the included file being evaluated even if the condition for the include is not met. This extends the run time significantly for a deployment. This patch forces all conditional includes to be dynamic. Change-Id: Ide463fde793aa044c5288ae50e87a6be771a8e4d Related-Bug: https://github.com/ansible/ansible/issues/17687
128 lines
3.6 KiB
YAML
128 lines
3.6 KiB
YAML
---
|
|
# 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.
|
|
|
|
- include: sahara_install_apt.yml
|
|
static: no
|
|
when: ansible_pkg_mgr == 'apt'
|
|
|
|
- name: Create developer mode constraint file
|
|
copy:
|
|
dest: "/opt/developer-pip-constraints.txt"
|
|
content: |
|
|
{% for item in sahara_developer_constraints %}
|
|
{{ item }}
|
|
{% endfor %}
|
|
when:
|
|
- sahara_developer_mode | bool
|
|
|
|
- name: Clone requirements git repository
|
|
git:
|
|
repo: "{{ sahara_requirements_git_repo }}"
|
|
dest: "/opt/requirements"
|
|
clone: yes
|
|
update: yes
|
|
version: "{{ sahara_requirements_git_install_branch }}"
|
|
when:
|
|
- sahara_developer_mode | bool
|
|
|
|
- name: Add constraints to pip_install_options fact for developer mode
|
|
set_fact:
|
|
pip_install_options_fact: "{{ pip_install_options|default('') }} --constraint /opt/developer-pip-constraints.txt --constraint /opt/requirements/upper-constraints.txt"
|
|
when:
|
|
- sahara_developer_mode | bool
|
|
|
|
- name: Set pip_install_options_fact when not in developer mode
|
|
set_fact:
|
|
pip_install_options_fact: "{{ pip_install_options|default('') }}"
|
|
when:
|
|
- not sahara_developer_mode | bool
|
|
|
|
- name: Install required pip packages
|
|
pip:
|
|
name: "{{ sahara_required_pip_packages | join(' ') }}"
|
|
state: present
|
|
extra_args: "{{ pip_install_options_fact }}"
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
|
|
- name: Get remote venv checksum
|
|
uri:
|
|
url: "{{ sahara_venv_download_url | replace('tgz', 'checksum') }}"
|
|
return_content: True
|
|
when:
|
|
- not sahara_developer_mode | bool
|
|
register: remote_venv_checksum
|
|
|
|
- name: Attempt venv download
|
|
get_url:
|
|
url: "{{ sahara_venv_download_url }}"
|
|
dest: "/var/cache/{{ sahara_venv_download_url | basename }}"
|
|
checksum: "sha1:{{ remote_venv_checksum.content }}"
|
|
ignore_errors: true
|
|
register: get_venv
|
|
when:
|
|
- not sahara_developer_mode | bool
|
|
|
|
- name: Set sahara get_venv fact
|
|
set_fact:
|
|
sahara_get_venv: "{{ get_venv }}"
|
|
|
|
- name: Remove existing venv
|
|
file:
|
|
path: "{{ sahara_bin | dirname }}"
|
|
state: absent
|
|
when:
|
|
- sahara_get_venv | changed
|
|
|
|
- name: Create sahara venv dir
|
|
file:
|
|
path: "{{ sahara_bin | dirname }}"
|
|
state: directory
|
|
register: sahara_venv_dir
|
|
|
|
- name: Unarchive pre-built venv
|
|
unarchive:
|
|
src: "/var/cache/{{ sahara_venv_download_url | basename }}"
|
|
dest: "{{ sahara_bin | dirname }}"
|
|
copy: "no"
|
|
when:
|
|
- not sahara_developer_mode | bool
|
|
- sahara_get_venv | changed or sahara_venv_dir | changed
|
|
notify:
|
|
- Restart sahara services
|
|
|
|
- name: Install pip packages (venv)
|
|
pip:
|
|
name: "{{ sahara_pip_packages | join(' ') }}"
|
|
state: latest
|
|
virtualenv: "{{ sahara_bin | dirname }}"
|
|
virtualenv_site_packages: "no"
|
|
extra_args: "{{ pip_install_options_fact }}"
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
when:
|
|
- sahara_get_venv | failed or sahara_developer_mode | bool
|
|
notify:
|
|
- Restart sahara services
|
|
|
|
- name: Update virtualenv path
|
|
command: >
|
|
virtualenv-tools --update-path=auto {{ sahara_bin | dirname }}
|
|
when:
|
|
- not sahara_developer_mode | bool
|
|
- sahara_get_venv | success
|