63 lines
2.0 KiB
YAML
63 lines
2.0 KiB
YAML
---
|
|
- name: Update Docker Daemon configuration to use Syslog Server
|
|
hosts: all
|
|
become: yes
|
|
tasks:
|
|
- name: Read current Docker daemon.json
|
|
ansible.builtin.slurp:
|
|
src: /etc/docker/daemon.json
|
|
register: current_daemon_json
|
|
|
|
- name: Parse current Docker daemon.json
|
|
set_fact:
|
|
current_daemon_config: "{{ current_daemon_json['content'] | b64decode | from_json }}"
|
|
|
|
- name: Check current log-driver setting
|
|
set_fact:
|
|
log_driver_current: "{{ current_daemon_config['log-driver'] | default('not_set') }}"
|
|
|
|
- name: Update Docker daemon.json with syslog configuration if log-driver is local
|
|
ansible.builtin.copy:
|
|
dest: /etc/docker/daemon.json
|
|
content: "{{ updated_daemon_json | to_nice_json }}"
|
|
vars:
|
|
syslog_config: {
|
|
"log-driver": "syslog",
|
|
"log-opts": {
|
|
"syslog-address": "udp://[2a0e:b680:80::91]:5514",
|
|
"syslog-format": "rfc5424",
|
|
"tag": "{{ '{{.Name}}' }}"
|
|
}
|
|
}
|
|
updated_daemon_json: "{{ current_daemon_config | combine(syslog_config) }}"
|
|
when: log_driver_current == 'local' or log is undefined
|
|
register: daemon_update
|
|
|
|
- name: Restart Docker to apply changes
|
|
ansible.builtin.systemd:
|
|
name: docker
|
|
state: restarted
|
|
when: daemon_update.changed
|
|
|
|
- include_role:
|
|
name: managed-mailcow
|
|
tasks_from: find-mailcow-composedir.yml
|
|
when: daemon_update.changed
|
|
|
|
- name: Stop mailcow stack
|
|
import_role:
|
|
name: managed-mailcow
|
|
tasks_from: stop-mailcow.yml
|
|
vars:
|
|
docker_compose_path: "{{ mailcow_dir_result.files[0].path }}"
|
|
verbose: False
|
|
when: daemon_update.changed and mailcow_dir_result.matched > 0
|
|
|
|
- name: Start mailcow stack
|
|
import_role:
|
|
name: managed-mailcow
|
|
tasks_from: start-mailcow.yml
|
|
vars:
|
|
docker_compose_path: "{{ mailcow_dir_result.files[0].path }}"
|
|
verbose: False
|
|
when: daemon_update.changed and mailcow_dir_result.matched > 0 |