76 lines
2.3 KiB
YAML
76 lines
2.3 KiB
YAML
---
|
|
- name: Include OS family-specific variables
|
|
include_vars: "{{ ansible_os_family }}.yml"
|
|
|
|
- name: Ensure EPEL repo is installed
|
|
yum:
|
|
name: epel-release
|
|
state: installed
|
|
become: True
|
|
when: ansible_os_family == 'RedHat'
|
|
|
|
- name: Ensure required packages are installed
|
|
package:
|
|
name: "{{ item }}"
|
|
state: installed
|
|
become: True
|
|
with_items: "{{ kolla_ansible_package_dependencies }}"
|
|
|
|
- name: Ensure source code checkout parent directory exists
|
|
file:
|
|
path: "{{ kolla_ansible_source_path | dirname }}"
|
|
state: directory
|
|
owner: "{{ ansible_user_id }}"
|
|
group: "{{ ansible_user_id }}"
|
|
become: True
|
|
when: kolla_ansible_ctl_install_type == 'source'
|
|
|
|
- name: Ensure Kolla Ansible source code checkout exists
|
|
git:
|
|
repo: "{{ kolla_ansible_source_url }}"
|
|
dest: "{{ kolla_ansible_source_path }}"
|
|
version: "{{ kolla_ansible_source_version }}"
|
|
when: kolla_ansible_ctl_install_type == 'source'
|
|
|
|
- name: Ensure virtualenv parent directory exists
|
|
file:
|
|
path: "{{ kolla_ansible_venv | dirname }}"
|
|
state: directory
|
|
owner: "{{ ansible_user_id }}"
|
|
group: "{{ ansible_user_id }}"
|
|
become: True
|
|
when: kolla_ansible_venv is not none
|
|
|
|
- name: Ensure the latest version of pip is installed
|
|
pip:
|
|
name: "{{ item.name }}"
|
|
state: latest
|
|
virtualenv: "{{ kolla_ansible_venv }}"
|
|
with_items:
|
|
- { name: pip }
|
|
|
|
- name: Ensure python requirements file exists
|
|
template:
|
|
src: requirements.txt.j2
|
|
dest: "{{ kolla_ansible_venv }}/requirements.txt"
|
|
|
|
- name: Ensure required Python packages are installed
|
|
pip:
|
|
requirements: "{{ kolla_ansible_venv }}/requirements.txt"
|
|
state: present
|
|
extra_args: "{% if kolla_upper_constraints_file %}-c {{ kolla_upper_constraints_file }}{% endif %}"
|
|
virtualenv: "{{ kolla_ansible_venv }}"
|
|
|
|
# This is a workaround for the lack of a python package for libselinux-python
|
|
# on PyPI. Without using --system-site-packages to create the virtualenv, it
|
|
# seems difficult to ensure the selinux python module is available. It is a
|
|
# dependency for Ansible when selinux is enabled.
|
|
- name: Ensure selinux Python package is linked into the virtualenv
|
|
file:
|
|
src: "/usr/lib64/python2.7/site-packages/selinux"
|
|
dest: "{{ kolla_ansible_venv }}/lib/python2.7/site-packages/selinux"
|
|
state: link
|
|
when:
|
|
- ansible_selinux != False
|
|
- ansible_selinux.status != 'disabled'
|