Playbooks I use for my homelab
1---
2- hosts: debianservers,freebsdservers
3 gather_facts: true
4 become: true
5
6 tasks:
7 - name: Ensure rsyslog is installed
8 ansible.builtin.package:
9 name: rsyslog
10 state: latest
11 when: ansible_system == "Linux"
12
13 - name: Ensure rsyslog is enabled
14 ansible.builtin.systemd_service:
15 name: rsyslog
16 enabled: true
17 state: started
18 when: ansible_service_mgr == "systemd"
19
20 - name: Remove any forwarding file if exists
21 ansible.builtin.file:
22 path: /etc/rsyslog.d/forward.conf
23 state: absent
24 when: ansible_system == "Linux"
25
26 - name: Get control node headnet IP address
27 ansible.builtin.shell: tailscale status | head -1 | awk '{print $1}'
28 register: ctrl_headnet_ip_addr
29 delegate_to: 127.0.0.1
30 changed_when: false
31 failed_when: ctrl_headnet_ip_addr.rc != 0
32
33 - name: Configure log forwarding
34 ansible.builtin.blockinfile:
35 path: /etc/rsyslog.d/forward.conf
36 create: true
37 owner: root
38 group: root
39 mode: 0644
40 block: |
41 # Forward to desktop.headscale.moonshadow.dev ({{ctrl_headnet_ip_addr.stdout}})
42 *.* action(type="omfwd" target="{{ctrl_headnet_ip_addr.stdout}}" port="514" protocol="tcp"
43 action.resumeRetryCount="100"
44 queue.type="linkedList" queue.size="10000")
45 when: ansible_system == "Linux"
46
47 - name: Restart rsyslog
48 ansible.builtin.systemd_service:
49 name: rsyslog
50 enabled: true
51 state: restarted
52 when: ansible_service_mgr == "systemd"
53
54 - name: Set syslog flags for remote logging on FreeBSD
55 ansible.builtin.shell: sysrc syslog_flags="-s -v -v"
56 register: set_syslog_flags
57 changed_when: '"syslog_flags: -> YES" in set_syslog_flags.stdout'
58 when: ansible_service_mgr == "bsdinit"
59
60 - name: Set log forwarding on FreeBSD
61 ansible.builtin.lineinfile:
62 path: /etc/syslog.conf
63 line: "*.* @{{ctrl_headnet_ip_addr.stdout}}"
64 owner: root
65 group: wheel
66 mode: 0644
67 when: ansible_system == "FreeBSD"
68
69 - name: Restart syslogd
70 ansible.builtin.service:
71 name: syslogd
72 state: restarted
73 when: ansible_service_mgr == "bsdinit"