From aec226b18a7598717dba8e8c8255da4f6767cf3e Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Mon, 25 Jul 2022 15:08:25 +0000 Subject: [PATCH 1/2] Add support for installing additional packages on the build host --- README.md | 3 +++ defaults/main.yml | 3 +++ tasks/images.yml | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 37fbfcd..49b7932 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ virtualenv --system-site-packages ~/venvs/dib Role Variables -------------- +`os_images_package_dependencies_extra`: List of additional packages to install +on the build host. + `os_images_cache`: a path to a directory in which to cache build artefacts. It defaults to `~/disk_images` `NOTE`: new images will NOT be built, even if changes are made in config, if an image is already cached. diff --git a/defaults/main.yml b/defaults/main.yml index 92f3408..1f89875 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,4 +1,7 @@ --- +# List of additional host package dependencies to install. +os_images_package_dependencies_extra: [] + # Path to virtualenv in which to install python dependencies. os_images_venv: diff --git a/tasks/images.yml b/tasks/images.yml index c5bfd31..a66bfad 100644 --- a/tasks/images.yml +++ b/tasks/images.yml @@ -4,7 +4,7 @@ - name: Ensure required packages are installed package: - name: "{{ os_images_package_dependencies | select | list }}" + name: "{{ (os_images_package_dependencies + os_images_package_dependencies_extra) | select | list }}" state: present become: True From b6d6106b3f65433626631207e6d19b94edc4958f Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Thu, 28 Jul 2022 12:25:58 +0100 Subject: [PATCH 2/2] Fix use of Ansible fact variables We should use ansible_facts instead. See #43. --- defaults/main.yml | 2 +- tasks/main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 1f89875..9e9f64f 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -15,7 +15,7 @@ os_images_package_state: present # Use Train upper constraints when running with Python 2, to avoid # incompatibility with newer OSC releases. Use Yoga upper constraints # otherwise, to avoid incompatibility with openstacksdk 0.99.0. -os_images_upper_constraints_file: "https://releases.openstack.org/constraints/upper/{% if ansible_python.version.major == 2 %}train{% else %}yoga{% endif %}" +os_images_upper_constraints_file: "https://releases.openstack.org/constraints/upper/{% if ansible_facts.python.version.major == 2 %}train{% else %}yoga{% endif %}" # Path to a directory in which to cache build artefacts. os_images_cache: "{{ lookup('env','HOME') }}/disk_images" diff --git a/tasks/main.yml b/tasks/main.yml index 084a1a4..a67b416 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,7 +1,7 @@ --- - name: Set a fact about the Ansible python interpreter set_fact: - old_ansible_python_interpreter: "{{ ansible_python_interpreter | default('/usr/bin/python' + ansible_python.version.major | string) }}" + old_ansible_python_interpreter: "{{ ansible_python_interpreter | default('/usr/bin/python' + ansible_facts.python.version.major | string) }}" - import_tasks: images.yml