- name: system logs gather_facts: no hosts: "{{target}}" become: "{{become}}" tasks: # make sure system is supported by the current playbook - assert: that: > system == 'debian' or system == 'redhat' or system == 'freebsd' or system == 'slackware' # compared to ansible.builtin.service, # this task has the advantage of going through package names that don't exist # namely removing inetutils-syslogd on redhat wouldn't bring an error - name: systemd - remove system log daemons ansible.builtin.package: name: - inetutils-syslogd - rsyslog state: absent diff: true when: system == 'debian' or system == 'redhat' notify: restart journald - name: systemd - system log daemon is down ansible.builtin.shell: executable: /bin/bash cmd: pgrep -a syslog || true register: check_syslog changed_when: check_syslog.stdout != '' check_mode: false when: system == 'debian' or system == 'redhat' notify: restart journald - debug: var=check_syslog.stdout when: check_syslog.stdout != '' changed_when: check_syslog.stdout != '' - debug: var=check_syslog.stderr when: check_syslog.stderr != '' changed_when: check_syslog.stderr != '' - name: systemd - journald is up ansible.builtin.service: name: "{{item}}" enabled: true state: started with_items: - systemd-journald-dev-log.socket - systemd-journald.service diff: true when: system == 'debian' or system == 'redhat' - name: bsd/sysv - system log daemon is up ansible.builtin.shell: executable: /bin/bash cmd: | set -e [[ {{system}} = freebsd ]] && pgrep -l syslogd || true [[ {{system}} = slackware ]] && pgrep -a syslogd || true changed_when: false check_mode: false when: system == 'freebsd' or system == 'slackware' handlers: - name: restart systemd-journald-dev-log.socket ansible.builtin.shell: executable: /bin/bash cmd: systemctl restart systemd-journald-dev-log.socket failed_when: false listen: restart journald - name: restart systemd-journald.service ansible.builtin.shell: executable: /bin/bash cmd: systemctl restart systemd-journald.service listen: restart journald