Files
operating-automation/playbooks/managed-mailcow/use-syslog-server.yaml
Ansible Servercow 7d26d8f534 move files
2024-11-19 16:10:59 +01:00

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