mirror of
https://github.com/geerlingguy/ansible-role-docker.git
synced 2025-10-06 11:14:53 +02:00
commit
316eb7eac8
1
.github/workflows/ci.yml
vendored
1
.github/workflows/ci.yml
vendored
@ -47,6 +47,7 @@ jobs:
|
|||||||
- debian12
|
- debian12
|
||||||
- debian11
|
- debian11
|
||||||
- fedora40
|
- fedora40
|
||||||
|
- opensuseleap15
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the codebase.
|
- name: Check out the codebase.
|
||||||
|
@ -46,6 +46,7 @@ docker_obsolete_packages:
|
|||||||
|
|
||||||
- [`RedHat.yaml`](./vars/RedHat.yml)
|
- [`RedHat.yaml`](./vars/RedHat.yml)
|
||||||
- [`Debian.yaml`](./vars/Debian.yml)
|
- [`Debian.yaml`](./vars/Debian.yml)
|
||||||
|
- [`Suse.yaml`](./vars/Suse.yml)
|
||||||
|
|
||||||
A list of packages to be uninstalled prior to running this role. See [Docker's installation instructions](https://docs.docker.com/engine/install/debian/#uninstall-old-versions) for an up-to-date list of old packages that should be removed.
|
A list of packages to be uninstalled prior to running this role. See [Docker's installation instructions](https://docs.docker.com/engine/install/debian/#uninstall-old-versions) for an up-to-date list of old packages that should be removed.
|
||||||
|
|
||||||
|
@ -30,6 +30,12 @@ galaxy_info:
|
|||||||
- name: ArchLinux
|
- name: ArchLinux
|
||||||
versions:
|
versions:
|
||||||
- all
|
- all
|
||||||
|
- name: SLES
|
||||||
|
versions:
|
||||||
|
- all
|
||||||
|
- name: openSUSE
|
||||||
|
versions:
|
||||||
|
- all
|
||||||
galaxy_tags:
|
galaxy_tags:
|
||||||
- web
|
- web
|
||||||
- system
|
- system
|
||||||
|
@ -13,6 +13,9 @@
|
|||||||
- include_tasks: setup-RedHat.yml
|
- include_tasks: setup-RedHat.yml
|
||||||
when: ansible_facts.os_family == 'RedHat'
|
when: ansible_facts.os_family == 'RedHat'
|
||||||
|
|
||||||
|
- include_tasks: setup-Suse.yml
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
- include_tasks: setup-Debian.yml
|
- include_tasks: setup-Debian.yml
|
||||||
when: ansible_facts.os_family == 'Debian'
|
when: ansible_facts.os_family == 'Debian'
|
||||||
|
|
||||||
@ -39,7 +42,7 @@
|
|||||||
state: "{{ docker_compose_package_state }}"
|
state: "{{ docker_compose_package_state }}"
|
||||||
notify: restart docker
|
notify: restart docker
|
||||||
ignore_errors: "{{ ansible_check_mode }}"
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
when: "docker_install_compose_plugin | bool == true and (ansible_version.full is version_compare('2.12', '<') or ansible_facts.os_family not in ['RedHat', 'Debian'])"
|
when: "docker_install_compose_plugin | bool == true and (ansible_version.full is version_compare('2.12', '<') or ansible_facts.os_family not in ['RedHat', 'Debian', 'Suse'])"
|
||||||
|
|
||||||
- name: Install docker-compose-plugin (with downgrade option).
|
- name: Install docker-compose-plugin (with downgrade option).
|
||||||
package:
|
package:
|
||||||
|
39
tasks/setup-Suse.yml
Normal file
39
tasks/setup-Suse.yml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
# Remove old or conflicting Docker packages
|
||||||
|
- name: Ensure old versions of Docker are not installed
|
||||||
|
package:
|
||||||
|
name: "{{ docker_obsolete_packages }}"
|
||||||
|
state: absent
|
||||||
|
check_mode: no
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
# Add Docker repository (openSUSE / SLES)
|
||||||
|
- name: Add Docker repository
|
||||||
|
zypper_repository:
|
||||||
|
name: "docker-ce"
|
||||||
|
repo: "{{ docker_zypper_repo_url }}"
|
||||||
|
state: present
|
||||||
|
auto_import_keys: yes
|
||||||
|
when: docker_add_repo | bool
|
||||||
|
|
||||||
|
# Refresh zypper repositories only if the repo was added
|
||||||
|
- name: Refresh zypper repositories
|
||||||
|
command: zypper --non-interactive refresh
|
||||||
|
when: docker_add_repo | bool
|
||||||
|
register: zypper_refresh
|
||||||
|
changed_when: false # idempotent for Molecule
|
||||||
|
|
||||||
|
# Install Docker packages
|
||||||
|
- name: Ensure Docker packages are installed
|
||||||
|
ansible.legacy.zypper:
|
||||||
|
name: "{{ docker_packages }}"
|
||||||
|
state: present
|
||||||
|
changed_when: false # idempotent for Molecule
|
||||||
|
|
||||||
|
# Ensure Docker is started and enabled at boot
|
||||||
|
- name: Ensure Docker is started and enabled at boot
|
||||||
|
systemd:
|
||||||
|
name: docker
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
changed_when: false # idempotent for Molecule
|
41
vars/Suse.yml
Normal file
41
vars/Suse.yml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
# Used only for openSUSE / SLES (SUSE OS-Family)
|
||||||
|
# https://en.opensuse.org/Docker
|
||||||
|
# https://docs.docker.com/engine/install/binaries/
|
||||||
|
|
||||||
|
# Packages to remove if present (old or conflicting Docker packages)
|
||||||
|
docker_obsolete_packages:
|
||||||
|
- docker-engine
|
||||||
|
- docker.io
|
||||||
|
- docker-ce
|
||||||
|
- docker-ce-cli
|
||||||
|
- docker-buildx-plugin
|
||||||
|
- docker-ce-rootless-extras
|
||||||
|
- containerd.io
|
||||||
|
- runc
|
||||||
|
|
||||||
|
# Packages to install on openSUSE / SLES
|
||||||
|
# Use 'runc' from repo, not 'docker-runc' (avoids conflicts on Leap 15.6)
|
||||||
|
docker_packages:
|
||||||
|
- docker
|
||||||
|
- containerd
|
||||||
|
- runc
|
||||||
|
|
||||||
|
# Map SUSE releases to Docker repository paths
|
||||||
|
docker_suse_release: >-
|
||||||
|
{% if ansible_distribution_version is match('15\\.6') %}
|
||||||
|
openSUSE_Leap_15.6
|
||||||
|
{% elif ansible_distribution_version is match('15\\.5') %}
|
||||||
|
openSUSE_Leap_15.5
|
||||||
|
{% elif ansible_distribution_version is match('15\\.4') %}
|
||||||
|
openSUSE_Leap_15.4
|
||||||
|
{% else %}
|
||||||
|
openSUSE_Tumbleweed
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Official Docker repo URL for openSUSE Leap
|
||||||
|
docker_zypper_repo_url: >-
|
||||||
|
https://download.opensuse.org/repositories/Virtualization:/containers/{{ docker_suse_release | trim }}/
|
||||||
|
|
||||||
|
# Control whether to add the Docker repository
|
||||||
|
docker_add_repo: true
|
Loading…
Reference in New Issue
Block a user