diff --git a/galaxy.yml b/galaxy.yml index e297721..1ce91b6 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -1,7 +1,7 @@ --- namespace: stackhpc name: openstack -version: 0.2.2 +version: 0.2.3 readme: README.md authors: - StackHPC Ltd diff --git a/roles/os_images/tasks/images.yml b/roles/os_images/tasks/images.yml index 58c1ccc..d853ec7 100644 --- a/roles/os_images/tasks/images.yml +++ b/roles/os_images/tasks/images.yml @@ -1,34 +1,4 @@ --- -- name: Include OS family-specific variables - ansible.builtin.include_vars: "{{ ansible_facts.os_family }}.yml" -- name: Ensure required packages are installed - ansible.builtin.package: - name: "{{ (os_images_package_dependencies + os_images_package_dependencies_extra) | select | list }}" - state: present - become: true - -# The rpm-distro element executes 'semanage' during its cleanup phase. -- name: Ensure diskimage-builder SELinux dependencies are installed - vars: - package_name: python3-policycoreutils - ansible.builtin.package: - name: "{{ package_name }}" - state: present - when: - - ansible_facts.selinux - - ansible_facts.selinux.status != 'disabled' - - ansible_facts.os_family == "RedHat" - become: true - -- name: Ensure download cache dir exists - ansible.builtin.file: - path: "{{ os_images_cache }}" - owner: "{{ ansible_facts.user_uid }}" - group: "{{ ansible_facts.user_gid }}" - state: directory - mode: "0755" - become: true - - name: Remove old images for force rebuild ansible.builtin.file: path: "{{ os_images_cache }}/{{ item.name }}" diff --git a/roles/os_images/tasks/main.yml b/roles/os_images/tasks/main.yml index 085bad7..0ed3d60 100644 --- a/roles/os_images/tasks/main.yml +++ b/roles/os_images/tasks/main.yml @@ -3,6 +3,12 @@ ansible.builtin.set_fact: old_ansible_python_interpreter: "{{ ansible_python_interpreter | default('/usr/bin/python3') }}" +- name: Run prechecks + ansible.builtin.import_tasks: prechecks.yml + +- name: Prerequisite tasks + ansible.builtin.import_tasks: prereqs.yml + - name: Build or download images ansible.builtin.import_tasks: images.yml when: os_images_build | bool diff --git a/roles/os_images/tasks/prechecks.yml b/roles/os_images/tasks/prechecks.yml new file mode 100644 index 0000000..0a9aef5 --- /dev/null +++ b/roles/os_images/tasks/prechecks.yml @@ -0,0 +1,16 @@ +--- +# Here a quick check for the presence of Docker (or an alias for Podman) +# Display a warning if not found +- name: Check if container engine is installed + ansible.builtin.command: which docker + changed_when: false + ignore_errors: true + register: result + +- name: Display warning message about the container engine + ansible.builtin.assert: + that: + - result.rc = 0 + fail_msg: > + Container runtime engine could not be found - make sure it is installed. + Elements that depend on it will likely fail when building. diff --git a/roles/os_images/tasks/prereqs.yml b/roles/os_images/tasks/prereqs.yml new file mode 100644 index 0000000..2301614 --- /dev/null +++ b/roles/os_images/tasks/prereqs.yml @@ -0,0 +1,31 @@ +--- +- name: Include OS family-specific variables + ansible.builtin.include_vars: "{{ ansible_facts.os_family }}.yml" + +- name: Ensure required packages are installed + ansible.builtin.package: + name: "{{ (os_images_package_dependencies + os_images_package_dependencies_extra) | select | list }}" + state: present + become: true + +# The rpm-distro element executes 'semanage' during its cleanup phase. +- name: Ensure diskimage-builder SELinux dependencies are installed + vars: + package_name: python3-policycoreutils + ansible.builtin.package: + name: "{{ package_name }}" + state: present + when: + - ansible_facts.selinux + - ansible_facts.selinux.status != 'disabled' + - ansible_facts.os_family == "RedHat" + become: true + +- name: Ensure download cache dir exists + ansible.builtin.file: + path: "{{ os_images_cache }}" + owner: "{{ ansible_facts.user_uid }}" + group: "{{ ansible_facts.user_gid }}" + state: directory + mode: "0755" + become: true diff --git a/roles/os_images/vars/Debian.yml b/roles/os_images/vars/Debian.yml index 9373439..2948105 100644 --- a/roles/os_images/vars/Debian.yml +++ b/roles/os_images/vars/Debian.yml @@ -1,11 +1,13 @@ --- # List of package dependencies. os_images_package_dependencies: + - debootstrap - dosfstools - gdisk - "{% if os_images_git_elements | length > 0 %}git{% endif %}" - kpartx - lvm2 + - python3-venv - qemu-utils - squashfs-tools - xz-utils diff --git a/roles/os_images/vars/RedHat.yml b/roles/os_images/vars/RedHat.yml index 9775d3e..f11b3ac 100644 --- a/roles/os_images/vars/RedHat.yml +++ b/roles/os_images/vars/RedHat.yml @@ -1,11 +1,13 @@ --- # List of package dependencies. os_images_package_dependencies: + - debootstrap - dosfstools - gdisk - "{% if os_images_git_elements | length > 0 %}git{% endif %}" - kpartx - lvm2 + - python3-devel - qemu-img - squashfs-tools - xz