
Rename True/False to true/false Fix permissions values Change-Id: I75be15fd24aeedf54bb22b9744bc0ee498a62645
73 lines
2.2 KiB
YAML
73 lines
2.2 KiB
YAML
---
|
|
# 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
|
|
command: docker ps -f 'status=running' -q
|
|
become: true
|
|
# 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
|
|
- block:
|
|
- name: Check if docker systemd unit exists
|
|
stat:
|
|
path: /etc/systemd/system/docker.service
|
|
register: docker_unit_file
|
|
|
|
- name: Mask the docker systemd unit on Debian/Ubuntu
|
|
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
|
|
when: ansible_facts.os_family == 'Debian'
|
|
|
|
- name: Install packages
|
|
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
|
|
become: true
|
|
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.
|
|
|
|
- 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
|
|
systemd:
|
|
name: docker
|
|
state: started
|
|
enabled: true
|
|
masked: false
|
|
become: true
|
|
|
|
- name: Wait for Docker to start
|
|
command: docker info
|
|
become: true
|
|
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
|
|
command: "docker start {{ running_containers.stdout }}"
|
|
become: true
|
|
changed_when: true
|
|
when:
|
|
- docker_install_result is changed
|
|
- running_containers.rc == 0
|
|
- running_containers.stdout != ''
|