Files
ansible-collection-kolla/roles/docker/tasks/install.yml
Michal Nasiadka 55d3c245c9 ansible-lint: Fix fqcn[action/action-core]
Change-Id: Idfbcfa8e9fc157c691ea30ebc5b6235ac4c3b436
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2025-11-21 14:17:13 +00:00

84 lines
2.6 KiB
YAML

---
- ansible.builtin.include_tasks: "repo-{{ ansible_facts.os_family }}.yml"
when: enable_docker_repo | bool
# Upgrading docker engine may cause containers to stop. Take a snapshot of the
# running containers prior to a potential upgrade of Docker.
- name: Check which containers are running
become: true
ansible.builtin.command:
cmd: docker ps -f 'status=running' -q
# If Docker is not installed this command may exit non-zero.
failed_when: false
changed_when: false
register: running_containers
# APT starts Docker engine right after installation, which creates
# iptables rules before we disable iptables in Docker config
- when: ansible_facts.os_family == 'Debian'
block:
- name: Check if docker systemd unit exists
ansible.builtin.stat:
path: /etc/systemd/system/docker.service
register: docker_unit_file
- name: Mask the docker systemd unit on Debian/Ubuntu
ansible.builtin.file:
src: /dev/null
dest: /etc/systemd/system/docker.service
owner: root
group: root
state: link
become: true
when: not docker_unit_file.stat.exists
- name: Install packages
become: true
ansible.builtin.package:
name: "{{ docker_packages | select | list }}"
cache_valid_time: "{{ apt_cache_valid_time if ansible_facts.os_family == 'Debian' else omit }}"
update_cache: true
state: present
register: docker_install_result
# If any packages were updated, and any containers were running, wait for the
# daemon to come up and start all previously running containers.
- become: true
when:
- docker_install_result is changed
- running_containers.rc == 0
- running_containers.stdout != ''
block:
# At some point (at least on CentOS 7) Docker CE stopped starting
# automatically after an upgrade from legacy docker . Start it manually.
- name: Start docker
ansible.builtin.systemd:
name: docker
state: started
enabled: true
masked: false
- name: Wait for Docker to start
ansible.builtin.command:
cmd: docker info
changed_when: false
register: result
until: result is success
retries: 6
delay: 10
- name: Ensure containers are running after Docker upgrade
# noqa no-changed-when
ansible.builtin.command:
cmd: "docker start {{ running_containers.stdout }}"
changed_when: true
- ansible.builtin.import_tasks: config.yml
- ansible.builtin.include_tasks: configure-containerd-for-zun.yml
when:
- containerd_configure_for_zun|bool
- "'zun-cni-daemon' in group_names"