--- - hosts: debianservers,freebsdservers 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 control node headnet IP address ansible.builtin.shell: tailscale status | head -1 | awk '{print $1}' register: ctrl_headnet_ip_addr delegate_to: 127.0.0.1 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 desktop.headscale.moonshadow.dev ({{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 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"