Merge "Use ansible_facts to reference facts"
This commit is contained in:
commit
acd5190510
|
@ -2,5 +2,6 @@ skip_list:
|
||||||
- '106' # Role name {} does not match ``^[a-z][a-z0-9_]+$`` pattern'
|
- '106' # Role name {} does not match ``^[a-z][a-z0-9_]+$`` pattern'
|
||||||
|
|
||||||
warn_list:
|
warn_list:
|
||||||
- experimental
|
|
||||||
- no-changed-when
|
- no-changed-when
|
||||||
|
- command-instead-of-shell # Use shell only when shell functionality is required
|
||||||
|
- experimental # all rules tagged as experimental
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
---
|
---
|
||||||
# Path to virtualenv used to install Python requirements. If a virtualenv does
|
# Path to virtualenv used to install Python requirements. If a virtualenv does
|
||||||
# not exist at this location, one will be created.
|
# not exist at this location, one will be created.
|
||||||
virtualenv_path: "{{ '/'.join([ansible_env['HOME'], 'tenks-venv']) }}"
|
virtualenv_path: "{{ '/'.join([ansible_facts.env['HOME'], 'tenks-venv']) }}"
|
||||||
|
|
||||||
# The URL of the upper constraints file to pass to pip when installing Python
|
# The URL of the upper constraints file to pass to pip when installing Python
|
||||||
# packages.
|
# packages.
|
||||||
python_upper_constraints_url: >-
|
python_upper_constraints_url: >-
|
||||||
https://releases.openstack.org/constraints/upper/{% if ansible_python.version.major == 2 %}train{% else %}master{% endif %}
|
https://releases.openstack.org/constraints/upper/{% if ansible_facts.python.version.major == 2 %}train{% else %}master{% endif %}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
physnet_mappings: {}
|
physnet_mappings: {}
|
||||||
|
|
||||||
system_requirements:
|
system_requirements:
|
||||||
- "python{% if ansible_python.version.major == 3 %}3{% endif %}-virtualenv"
|
- "python{% if ansible_facts.python.version.major == 3 %}3{% endif %}-virtualenv"
|
||||||
|
|
||||||
# Tenks bridge type. Options are "openvswitch", "linuxbridge". Default is
|
# Tenks bridge type. Options are "openvswitch", "linuxbridge". Default is
|
||||||
# "openvswitch". Note that this relates to bridges created by Tenks, not the
|
# "openvswitch". Note that this relates to bridges created by Tenks, not the
|
||||||
|
|
|
@ -5,8 +5,8 @@ libvirt_pool_type: dir
|
||||||
# Capacity is irrelevant for directory-based pools.
|
# Capacity is irrelevant for directory-based pools.
|
||||||
libvirt_pool_capacity:
|
libvirt_pool_capacity:
|
||||||
libvirt_pool_mode: 755
|
libvirt_pool_mode: 755
|
||||||
libvirt_pool_owner: "{{ ansible_user_id }}"
|
libvirt_pool_owner: "{{ ansible_facts.user_id }}"
|
||||||
libvirt_pool_group: "{{ ansible_user_id }}"
|
libvirt_pool_group: "{{ ansible_facts.user_id }}"
|
||||||
|
|
||||||
# By default, allow QEMU without hardware virtualisation since this is a
|
# By default, allow QEMU without hardware virtualisation since this is a
|
||||||
# development tool.
|
# development tool.
|
||||||
|
|
|
@ -53,8 +53,8 @@
|
||||||
# NOTE(mgoddard): On CentOS 8 if SELinux is enabled, install
|
# NOTE(mgoddard): On CentOS 8 if SELinux is enabled, install
|
||||||
# virtualbmc to the system rather than a virtualenv. SELinux
|
# virtualbmc to the system rather than a virtualenv. SELinux
|
||||||
# prevents systemd from accessing files in users' home directories.
|
# prevents systemd from accessing files in users' home directories.
|
||||||
selinux_enabled: "{{ ansible_selinux.status | default('disabled') == 'enabled' }}"
|
selinux_enabled: "{{ ansible_facts.selinux.status | default('disabled') == 'enabled' }}"
|
||||||
is_centos8: "{{ ansible_os_family == 'RedHat' and ansible_distribution_major_version | int == 8 }}"
|
is_centos8: "{{ ansible_facts.os_family == 'RedHat' and ansible_facts.distribution_major_version | int == 8 }}"
|
||||||
vbmcd_virtualenv_path: "{{ '' if is_centos8 and selinux_enabled else virtualenv_path }}"
|
vbmcd_virtualenv_path: "{{ '' if is_centos8 and selinux_enabled else virtualenv_path }}"
|
||||||
vbmcd_python_upper_constraints_url: >-
|
vbmcd_python_upper_constraints_url: >-
|
||||||
{{ python_upper_constraints_url }}
|
{{ python_upper_constraints_url }}
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
include_vars: "{{ item }}"
|
include_vars: "{{ item }}"
|
||||||
with_first_found:
|
with_first_found:
|
||||||
- files:
|
- files:
|
||||||
- "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml"
|
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||||
- "{{ ansible_distribution }}.yml"
|
- "{{ ansible_facts.distribution }}.yml"
|
||||||
- "{{ ansible_os_family }}.yml"
|
- "{{ ansible_facts.os_family }}.yml"
|
||||||
skip: true
|
skip: true
|
||||||
tags: vars
|
tags: vars
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,8 @@
|
||||||
# NOTE(mgoddard): On CentOS 8 if SELinux is enabled, install virtualbmc
|
# NOTE(mgoddard): On CentOS 8 if SELinux is enabled, install virtualbmc
|
||||||
# to the system rather than a virtualenv. SELinux prevents systemd from
|
# to the system rather than a virtualenv. SELinux prevents systemd from
|
||||||
# accessing files in users' home directories.
|
# accessing files in users' home directories.
|
||||||
selinux_enabled: "{{ ansible_selinux.status | default('disabled') == 'enabled' }}"
|
selinux_enabled: "{{ ansible_facts.selinux.status | default('disabled') == 'enabled' }}"
|
||||||
is_centos8: "{{ ansible_os_family == 'RedHat' and ansible_distribution_major_version | int == 8 }}"
|
is_centos8: "{{ ansible_facts.os_family == 'RedHat' and ansible_facts.distribution_major_version | int == 8 }}"
|
||||||
vbmc_virtualenv_path: "{{ '' if is_centos8 and selinux_enabled else virtualenv_path }}"
|
vbmc_virtualenv_path: "{{ '' if is_centos8 and selinux_enabled else virtualenv_path }}"
|
||||||
vbmc_log_directory: "{{ log_directory }}"
|
vbmc_log_directory: "{{ log_directory }}"
|
||||||
vbmc_state: "{{ domain.get('state', 'present') }}"
|
vbmc_state: "{{ domain.get('state', 'present') }}"
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
include_vars: "{{ item }}"
|
include_vars: "{{ item }}"
|
||||||
with_first_found:
|
with_first_found:
|
||||||
- files:
|
- files:
|
||||||
- "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml"
|
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||||
- "{{ ansible_distribution }}.yml"
|
- "{{ ansible_facts.distribution }}.yml"
|
||||||
- "{{ ansible_os_family }}.yml"
|
- "{{ ansible_facts.os_family }}.yml"
|
||||||
skip: true
|
skip: true
|
||||||
tags: vars
|
tags: vars
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
msg: >
|
msg: >
|
||||||
The interface {{ source_interface }} specified for the physical network
|
The interface {{ source_interface }} specified for the physical network
|
||||||
{{ network_name }} does not exist.
|
{{ network_name }} does not exist.
|
||||||
when: source_interface not in ansible_interfaces
|
when: source_interface not in ansible_facts.interfaces
|
||||||
|
|
||||||
### Firstly, some fact gathering.
|
### Firstly, some fact gathering.
|
||||||
# Start off by assuming the source interface is direct, unless proven
|
# Start off by assuming the source interface is direct, unless proven
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
- name: Set Ironic port attributes
|
- name: Set Ironic port attributes
|
||||||
vars:
|
vars:
|
||||||
port_attributes: "{{ port_attributes_output.stdout | from_json }}"
|
port_attributes: "{{ port_attributes_output.stdout | from_json }}"
|
||||||
switch_id: "{{ hostvars[ironic_hypervisor]['ansible_' + bridge].macaddress }}"
|
switch_id: "{{ hostvars[ironic_hypervisor].ansible_facts[bridge].macaddress }}"
|
||||||
switch_info: "{{ bridge }}"
|
switch_info: "{{ bridge }}"
|
||||||
port_id: >-
|
port_id: >-
|
||||||
{{ source_interface
|
{{ source_interface
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
include_vars: "{{ item }}"
|
include_vars: "{{ item }}"
|
||||||
with_first_found:
|
with_first_found:
|
||||||
- files:
|
- files:
|
||||||
- "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml"
|
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||||
- "{{ ansible_distribution }}.yml"
|
- "{{ ansible_facts.distribution }}.yml"
|
||||||
- "{{ ansible_os_family }}.yml"
|
- "{{ ansible_facts.os_family }}.yml"
|
||||||
skip: true
|
skip: true
|
||||||
tags: vars
|
tags: vars
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
- name: Ensure Python requirements are installed
|
- name: Ensure Python requirements are installed
|
||||||
pip:
|
pip:
|
||||||
name:
|
name:
|
||||||
- "virtualbmc>=1.4.0{% if ansible_python.version.major == 2 %},<2{% endif %}"
|
- "virtualbmc>=1.4.0{% if ansible_facts.python.version.major == 2 %},<2{% endif %}"
|
||||||
# NOTE(priteau): Ignore PyYAML when installing system-wide to avoid the
|
# NOTE(priteau): Ignore PyYAML when installing system-wide to avoid the
|
||||||
# following error: Cannot uninstall 'PyYAML'. It is a distutils installed
|
# following error: Cannot uninstall 'PyYAML'. It is a distutils installed
|
||||||
# project and thus we cannot accurately determine which files belong to it
|
# project and thus we cannot accurately determine which files belong to it
|
||||||
|
|
|
@ -29,8 +29,8 @@
|
||||||
include_role:
|
include_role:
|
||||||
name: fkautz.openvswitch-install
|
name: fkautz.openvswitch-install
|
||||||
when:
|
when:
|
||||||
- ansible_os_family == "RedHat"
|
- ansible_facts.os_family == "RedHat"
|
||||||
- ansible_distribution_major_version is version(8, '<')
|
- ansible_facts.distribution_major_version is version(8, '<')
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Install the Delorean repositories
|
- name: Install the Delorean repositories
|
||||||
|
@ -50,8 +50,8 @@
|
||||||
name: openvswitch
|
name: openvswitch
|
||||||
state: started
|
state: started
|
||||||
when:
|
when:
|
||||||
- ansible_os_family == "RedHat"
|
- ansible_facts.os_family == "RedHat"
|
||||||
- ansible_distribution_major_version is version(8, '>=')
|
- ansible_facts.distribution_major_version is version(8, '>=')
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Install packages
|
- name: Install packages
|
||||||
|
@ -68,5 +68,5 @@
|
||||||
service:
|
service:
|
||||||
name: openvswitch-switch
|
name: openvswitch-switch
|
||||||
state: started
|
state: started
|
||||||
when: ansible_os_family == "Debian"
|
when: ansible_facts.os_family == "Debian"
|
||||||
|
|
||||||
|
|
|
@ -23,13 +23,25 @@
|
||||||
become: true
|
become: true
|
||||||
package:
|
package:
|
||||||
name: python3
|
name: python3
|
||||||
when: ansible_python.version.major == 3
|
when: ansible_facts.python.version.major == 3
|
||||||
|
|
||||||
- name: Create virtualenv for tenks
|
- name: Create virtualenv for tenks
|
||||||
pip:
|
pip:
|
||||||
requirements: "{{ tenks_src_dir }}/requirements.txt"
|
requirements: "{{ tenks_src_dir }}/requirements.txt"
|
||||||
virtualenv: "{{ tenks_venv }}"
|
virtualenv: "{{ tenks_venv }}"
|
||||||
virtualenv_python: "{{ ansible_python.executable }}"
|
virtualenv_python: "{{ ansible_facts.python.executable }}"
|
||||||
|
|
||||||
|
- name: Ensure /etc/ansible exists
|
||||||
|
file:
|
||||||
|
path: /etc/ansible
|
||||||
|
state: directory
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Template ansible.cfg
|
||||||
|
template:
|
||||||
|
src: "ansible.cfg.j2"
|
||||||
|
dest: /etc/ansible/ansible.cfg
|
||||||
|
become: true
|
||||||
|
|
||||||
- name: Template requirements overrides
|
- name: Template requirements overrides
|
||||||
template:
|
template:
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
[defaults]
|
||||||
|
# Ensure that facts are referenced via ansible_facts.<fact>.
|
||||||
|
inject_facts_as_vars = False
|
||||||
|
|
||||||
|
[ssh_connection]
|
||||||
|
pipelining = True
|
||||||
|
retries = 3
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
# Use python3 on Ubuntu remote hosts.
|
# Use python3 on Ubuntu remote hosts.
|
||||||
ansible_python_interpreter: "{{ '/usr/bin/python3' if ansible_python.version.major == 3 else '/usr/bin/python2' }}"
|
ansible_python_interpreter: "{{ '/usr/bin/python3' if ansible_facts.python.version.major == 3 else '/usr/bin/python2' }}"
|
||||||
|
|
||||||
# This file holds the config given to Tenks when running the zuul job,
|
# This file holds the config given to Tenks when running the zuul job,
|
||||||
# tenks-deploy-teardown. It assumes the existence of the bridge `breth1`.
|
# tenks-deploy-teardown. It assumes the existence of the bridge `breth1`.
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
# Variables shared between the playbooks
|
# Variables shared between the playbooks
|
||||||
|
|
||||||
tenks_src_dir: "{{ ansible_env.HOME ~ '/' ~ zuul.projects['opendev.org/openstack/tenks'].src_dir }}"
|
tenks_src_dir: "{{ ansible_facts.env.HOME ~ '/' ~ zuul.projects['opendev.org/openstack/tenks'].src_dir }}"
|
||||||
stackhpc_libvirt_host_src_dir: >-
|
stackhpc_libvirt_host_src_dir: >-
|
||||||
{{ ansible_env.HOME ~ '/' ~ zuul.projects['github.com/stackhpc/ansible-role-libvirt-host'].src_dir }}
|
{{ ansible_facts.env.HOME ~ '/' ~ zuul.projects['github.com/stackhpc/ansible-role-libvirt-host'].src_dir }}
|
||||||
stackhpc_libvirt_vm_src_dir: >-
|
stackhpc_libvirt_vm_src_dir: >-
|
||||||
{{ ansible_env.HOME ~ '/' ~ zuul.projects['github.com/stackhpc/ansible-role-libvirt-vm'].src_dir }}
|
{{ ansible_facts.env.HOME ~ '/' ~ zuul.projects['github.com/stackhpc/ansible-role-libvirt-vm'].src_dir }}
|
||||||
upper_constraints_path: "{{ ansible_env.HOME ~ '/' ~ zuul.projects['opendev.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
|
upper_constraints_path: "{{ ansible_facts.env.HOME ~ '/' ~ zuul.projects['opendev.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
|
||||||
tenks_venv: "{{ ansible_env.HOME ~ '/' ~ 'venv-tenks' }}"
|
tenks_venv: "{{ ansible_facts.env.HOME ~ '/' ~ 'venv-tenks' }}"
|
||||||
config_dir: "{{ ansible_env.HOME ~ '/' ~ 'tenks-config' }}"
|
config_dir: "{{ ansible_facts.env.HOME ~ '/' ~ 'tenks-config' }}"
|
||||||
tenks_overrides_path: "{{ config_dir ~ '/' ~ 'tenks-overrides.yml' }}"
|
tenks_overrides_path: "{{ config_dir ~ '/' ~ 'tenks-overrides.yml' }}"
|
||||||
tenks_requirements_overrides_path: "{{ tenks_src_dir }}/requirements-overrides.yml"
|
tenks_requirements_overrides_path: "{{ tenks_src_dir }}/requirements-overrides.yml"
|
||||||
logs_dir: "/tmp/logs"
|
logs_dir: "/tmp/logs"
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
- name: Enable the EPEL yum repository
|
- name: Enable the EPEL yum repository
|
||||||
command: yum-config-manager --enable epel
|
command: yum-config-manager --enable epel
|
||||||
when: ansible_os_family == 'RedHat'
|
when: ansible_facts.os_family == 'RedHat'
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Install Python3 modules
|
- name: Install Python3 modules
|
||||||
|
@ -20,4 +20,4 @@
|
||||||
- python3-pip
|
- python3-pip
|
||||||
- python3-setuptools
|
- python3-setuptools
|
||||||
- python3-wheel
|
- python3-wheel
|
||||||
- "{% if ansible_os_family == 'Debian' %}virtualenv{% else %}python3-virtualenv{% endif %}"
|
- "{% if ansible_facts.os_family == 'Debian' %}virtualenv{% else %}python3-virtualenv{% endif %}"
|
||||||
|
|
Loading…
Reference in New Issue