Skip to content

Commit f53771d

Browse files
authored
Merge pull request #46 from stackhpc/packages
Handle additional dependencies
2 parents 583e207 + e23ddf6 commit f53771d

File tree

7 files changed

+58
-31
lines changed

7 files changed

+58
-31
lines changed

galaxy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
namespace: stackhpc
33
name: openstack
4-
version: 0.2.2
4+
version: 0.2.3
55
readme: README.md
66
authors:
77
- StackHPC Ltd

roles/os_images/tasks/images.yml

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,4 @@
11
---
2-
- name: Include OS family-specific variables
3-
ansible.builtin.include_vars: "{{ ansible_facts.os_family }}.yml"
4-
- name: Ensure required packages are installed
5-
ansible.builtin.package:
6-
name: "{{ (os_images_package_dependencies + os_images_package_dependencies_extra) | select | list }}"
7-
state: present
8-
become: true
9-
10-
# The rpm-distro element executes 'semanage' during its cleanup phase.
11-
- name: Ensure diskimage-builder SELinux dependencies are installed
12-
vars:
13-
package_name: python3-policycoreutils
14-
ansible.builtin.package:
15-
name: "{{ package_name }}"
16-
state: present
17-
when:
18-
- ansible_facts.selinux
19-
- ansible_facts.selinux.status != 'disabled'
20-
- ansible_facts.os_family == "RedHat"
21-
become: true
22-
23-
- name: Ensure download cache dir exists
24-
ansible.builtin.file:
25-
path: "{{ os_images_cache }}"
26-
owner: "{{ ansible_facts.user_uid }}"
27-
group: "{{ ansible_facts.user_gid }}"
28-
state: directory
29-
mode: "0755"
30-
become: true
31-
322
- name: Remove old images for force rebuild
333
ansible.builtin.file:
344
path: "{{ os_images_cache }}/{{ item.name }}"

roles/os_images/tasks/main.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
ansible.builtin.set_fact:
44
old_ansible_python_interpreter: "{{ ansible_python_interpreter | default('/usr/bin/python3') }}"
55

6+
- name: Run prechecks
7+
ansible.builtin.import_tasks: prechecks.yml
8+
9+
- name: Prerequisite tasks
10+
ansible.builtin.import_tasks: prereqs.yml
11+
612
- name: Build or download images
713
ansible.builtin.import_tasks: images.yml
814
when: os_images_build | bool
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
# Here a quick check for the presence of Docker (or an alias for Podman)
3+
# Display a warning if not found
4+
- name: Check if container engine is installed
5+
ansible.builtin.command: which docker
6+
changed_when: false
7+
ignore_errors: true
8+
register: result
9+
10+
- name: Display warning message about the container engine
11+
ansible.builtin.assert:
12+
that:
13+
- result.rc = 0
14+
fail_msg: >
15+
Container runtime engine could not be found - make sure it is installed.
16+
Elements that depend on it will likely fail when building.

roles/os_images/tasks/prereqs.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
- name: Include OS family-specific variables
3+
ansible.builtin.include_vars: "{{ ansible_facts.os_family }}.yml"
4+
5+
- name: Ensure required packages are installed
6+
ansible.builtin.package:
7+
name: "{{ (os_images_package_dependencies + os_images_package_dependencies_extra) | select | list }}"
8+
state: present
9+
become: true
10+
11+
# The rpm-distro element executes 'semanage' during its cleanup phase.
12+
- name: Ensure diskimage-builder SELinux dependencies are installed
13+
vars:
14+
package_name: python3-policycoreutils
15+
ansible.builtin.package:
16+
name: "{{ package_name }}"
17+
state: present
18+
when:
19+
- ansible_facts.selinux
20+
- ansible_facts.selinux.status != 'disabled'
21+
- ansible_facts.os_family == "RedHat"
22+
become: true
23+
24+
- name: Ensure download cache dir exists
25+
ansible.builtin.file:
26+
path: "{{ os_images_cache }}"
27+
owner: "{{ ansible_facts.user_uid }}"
28+
group: "{{ ansible_facts.user_gid }}"
29+
state: directory
30+
mode: "0755"
31+
become: true

roles/os_images/vars/Debian.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
22
# List of package dependencies.
33
os_images_package_dependencies:
4+
- debootstrap
45
- dosfstools
56
- gdisk
67
- "{% if os_images_git_elements | length > 0 %}git{% endif %}"
78
- kpartx
89
- lvm2
10+
- python3-venv
911
- qemu-utils
1012
- squashfs-tools
1113
- xz-utils

roles/os_images/vars/RedHat.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
22
# List of package dependencies.
33
os_images_package_dependencies:
4+
- debootstrap
45
- dosfstools
56
- gdisk
67
- "{% if os_images_git_elements | length > 0 %}git{% endif %}"
78
- kpartx
89
- lvm2
10+
- python3-devel
911
- qemu-img
1012
- squashfs-tools
1113
- xz

0 commit comments

Comments
 (0)