diff --git a/roles/docker/defaults/main/fedora.yml b/roles/docker/defaults/main/fedora.yml new file mode 100644 index 0000000..d5acd3d --- /dev/null +++ b/roles/docker/defaults/main/fedora.yml @@ -0,0 +1,34 @@ +--- +docker_fedora_repo_name: "docker-ce-stable" +docker_fedora_repo_description: "Docker CE Stable - $basearch" +docker_fedora_repo_url: "https://download.docker.com/linux/fedora/$releasever/$basearch/stable" +docker_fedora_repo_validate_certs: true +docker_fedora_repo_gpg_check: true +docker_fedora_repo_gpg_key: "https://download.docker.com/linux/fedora/gpg" + +docker_fedora_cli_package: "docker-ce-cli" +docker_fedora_plugin_buildx_package: "docker-buildx-plugin" +docker_fedora_plugin_compose_package: "docker-compose-plugin" +docker_fedora_base_packages: + - "docker-ce" + - "docker-ce-cli" + - "containerd.io" +docker_fedora_packages: >-2 + {{ + docker_fedora_base_packages + + (docker_plugin_buildx_enable | default(false) + | ternary([ docker_fedora_plugin_buildx_package ], [])) + + (docker_plugin_compose_enable | default(false) + | ternary([ docker_fedora_plugin_compose_package ], [])) + }} +docker_fedora_legacy_packages: + - "docker" + - "docker-client" + - "docker-client-latest" + - "docker-common" + - "docker-latest" + - "docker-latest-logrotate" + - "docker-logrotate" + - "docker-selinux" + - "docker-engine-selinux" + - "docker-engine" diff --git a/roles/docker/tasks/configure.yml b/roles/docker/tasks/configure.yml index be897ab..8f6669d 100644 --- a/roles/docker/tasks/configure.yml +++ b/roles/docker/tasks/configure.yml @@ -9,7 +9,7 @@ - name: Configure docker daemon using '{{ docker_daemon_config_file }}' ansible.builtin.copy: - content: "{{ docker_daemon_config | to_json }}" + content: "{{ docker_daemon_config | to_nice_json }}" dest: "{{ docker_daemon_config_file }}" mode: "{{ docker_daemon_config_file_mode }}" owner: "{{ docker_daemon_config_owner }}" diff --git a/roles/docker/tasks/install-fedora.yml b/roles/docker/tasks/install-fedora.yml new file mode 100644 index 0000000..30c228c --- /dev/null +++ b/roles/docker/tasks/install-fedora.yml @@ -0,0 +1,21 @@ +--- +- name: Ensure legacy docker packages are removed + ansible.builtin.dnf: + name: "{{ docker_fedora_legacy_packages }}" + state: "removed" + when: docker_remove_legacy_packages + +- name: Ensure dnf repository for docker is {{ docker_state }} + ansible.builtin.yum_repository: + name: "{{ docker_fedora_repo_name }}" + description: "{{ docker_fedora_repo_description }}" + baseurl: "{{ docker_fedora_repo_url }}" + validate_certs: "{{ docker_fedora_repo_validate_certs }}" + gpgkey: "{{ docker_fedora_repo_gpg_key }}" + gpgcheck: "{{ docker_fedora_repo_gpg_check }}" + state: "{{ docker_state }}" + +- name: Install dnf packages for docker + ansible.builtin.dnf: + name: "{{ docker_fedora_packages }}" + state: "{{ docker_state }}" diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 7b7bad7..1af8d28 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -2,14 +2,14 @@ - name: Check if target OS is supported ansible.builtin.fail: msg: >-2 - OS Family '{{ docker_os_family }}' is not supported! - when: docker_os_family not in docker_supported_os_families + OS '{{ docker_os }}' is not supported! + when: docker_os not in docker_supported_oses vars: - docker_os_family: "{{ ansible_os_family | lower }}" + docker_os: "{{ ansible_distribution | lower }}" -- name: Ensure docker is {{ docker_state }} on {{ ansible_os_family }}-family +- name: Ensure docker is {{ docker_state }} on {{ ansible_distribution }} ansible.builtin.include_tasks: - file: "install-{{ ansible_os_family | lower }}.yml" + file: "install-{{ ansible_distribution | lower }}.yml" - name: Configure docker daemon ansible.builtin.include_tasks: diff --git a/roles/docker/vars/main.yml b/roles/docker/vars/main.yml index a1b0f0d..09988d0 100644 --- a/roles/docker/vars/main.yml +++ b/roles/docker/vars/main.yml @@ -1,3 +1,4 @@ --- -docker_supported_os_families: +docker_supported_oses: - 'debian' + - 'fedora'