aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2023-08-31 23:13:51 +0200
committerEgor Tensin <Egor.Tensin@gmail.com>2023-08-31 23:17:51 +0200
commit003c4d40b0900c025192ba8e6332f7c0e5cd8a12 (patch)
treee9f5a936604257a9139dac7c967cdcc53461cce0
parentv0.0.24 (diff)
downloadinfra-ansible-003c4d40b0900c025192ba8e6332f7c0e5cd8a12.tar.gz
infra-ansible-003c4d40b0900c025192ba8e6332f7c0e5cd8a12.zip
docker: factor out service restart as a handler
-rw-r--r--roles/docker/handlers/main.yml7
-rw-r--r--roles/docker/tasks/logging.yml17
-rw-r--r--roles/docker/tasks/main.yml13
3 files changed, 21 insertions, 16 deletions
diff --git a/roles/docker/handlers/main.yml b/roles/docker/handlers/main.yml
new file mode 100644
index 0000000..742a98c
--- /dev/null
+++ b/roles/docker/handlers/main.yml
@@ -0,0 +1,7 @@
+- name: Restart Docker
+ become: true
+ ansible.builtin.systemd_service:
+ daemon_reload: true
+ name: docker
+ state: restarted
+ listen: docker_restart
diff --git a/roles/docker/tasks/logging.yml b/roles/docker/tasks/logging.yml
index 99d3cab..9dcf103 100644
--- a/roles/docker/tasks/logging.yml
+++ b/roles/docker/tasks/logging.yml
@@ -4,29 +4,22 @@
become: true
ansible.builtin.slurp:
src: /etc/docker/daemon.json
- register: docker_config
+ register: current_docker_config
- name: Parse daemon.json
ansible.builtin.set_fact:
- docker_config: '{{ docker_config.content | b64decode | from_json }}'
+ current_docker_config: '{{ current_docker_config.content | b64decode | from_json }}'
rescue:
- name: daemon.json is missing
ansible.builtin.set_fact:
- docker_config: {}
+ current_docker_config: {}
- name: Modify Docker config
become: true
ansible.builtin.copy:
dest: /etc/docker/daemon.json
- content: '{{ docker_config | combine({"log-driver": docker_logging_driver}) | to_nice_json }}'
+ content: '{{ current_docker_config | combine({"log-driver": docker_logging_driver}) | to_nice_json }}'
owner: root
group: root
mode: '644'
- register: daemon_json
-
-- name: Restart Docker
- become: true
- ansible.builtin.systemd_service:
- name: docker
- state: restarted
- when: daemon_json.changed
+ notify: docker_restart
diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml
index c8361a0..639615b 100644
--- a/roles/docker/tasks/main.yml
+++ b/roles/docker/tasks/main.yml
@@ -5,7 +5,16 @@
name:
- docker.io
- docker-compose
+ policy_rc_d: 101
state: present
+ notify: docker_restart
+
+- name: Configure Docker logging driver
+ when: docker_logging_driver is defined and docker_logging_driver
+ ansible.builtin.include_tasks: logging.yml
+
+- name: Restart systemd service if necessary
+ ansible.builtin.meta: flush_handlers
- name: Clean up Docker data
become: true
@@ -17,7 +26,3 @@
networks: true
volumes: true
builder_cache: true
-
-- name: Configure Docker logging driver
- when: docker_logging_driver is defined and docker_logging_driver
- ansible.builtin.include_tasks: logging.yml