ansible-homelab/remote-logging-setup.yml

74 lines
2.2 KiB
YAML

---
- 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"