- hosts: remote_logging_clients gather_facts: true become: true tasks: - name: Ensure rsyslog is installed ansible.builtin.package: name: rsyslog state: latest when: ansible_system == "Linux" - name: Ensure rsyslog is enabled ansible.builtin.systemd_service: name: rsyslog enabled: true state: started when: ansible_service_mgr == "systemd" - name: Remove any forwarding file if exists ansible.builtin.file: path: /etc/rsyslog.d/forward.conf state: absent when: ansible_system == "Linux" - name: Get remote logging server headnet IP address ansible.builtin.shell: tailscale status | grep "aux" | awk '{print $1}' register: ctrl_headnet_ip_addr changed_when: false failed_when: ctrl_headnet_ip_addr.rc != 0 - name: Configure log forwarding ansible.builtin.blockinfile: path: /etc/rsyslog.d/forward.conf create: true owner: root group: root mode: 0644 block: | # Forward to aux.carp-wyvern.ts.net ({{ctrl_headnet_ip_addr.stdout}}) *.* action(type="omfwd" target="{{ctrl_headnet_ip_addr.stdout}}" port="514" protocol="tcp" action.resumeRetryCount="100" queue.type="linkedList" queue.size="10000") when: ansible_system == "Linux" - name: Restart rsyslog ansible.builtin.systemd_service: name: rsyslog enabled: true state: restarted when: ansible_service_mgr == "systemd" - name: Set syslog flags for remote logging on FreeBSD ansible.builtin.shell: sysrc syslog_flags="-s -v -v" register: set_syslog_flags changed_when: '"syslog_flags: -> YES" in set_syslog_flags.stdout' when: ansible_service_mgr == "bsdinit" - name: Set log forwarding on FreeBSD ansible.builtin.lineinfile: path: /etc/syslog.conf regexp: '^\*\.\*' line: "*.* @{{ctrl_headnet_ip_addr.stdout}}" owner: root group: wheel mode: 0644 when: ansible_system == "FreeBSD" - name: Restart syslogd ansible.builtin.service: name: syslogd state: restarted when: ansible_service_mgr == "bsdinit"