Playbooks I use for my homelab
1---
2- hosts: rhel_servers,debian_servers,freebsd_servers
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 remote logging server headnet IP address
27 ansible.builtin.shell: tailscale status | grep "dietpi" | awk '{print $1}'
28 register: ctrl_headnet_ip_addr
29 changed_when: false
30 failed_when: ctrl_headnet_ip_addr.rc != 0
31
32 - name: Configure log forwarding
33 ansible.builtin.blockinfile:
34 path: /etc/rsyslog.d/forward.conf
35 create: true
36 owner: root
37 group: root
38 mode: 0644
39 block: |
40 # Forward to desktop.hs.ms.dev ({{ctrl_headnet_ip_addr.stdout}})
41 *.* action(type="omfwd" target="{{ctrl_headnet_ip_addr.stdout}}" port="514" protocol="tcp"
42 action.resumeRetryCount="100"
43 queue.type="linkedList" queue.size="10000")
44 when: ansible_system == "Linux"
45
46 - name: Restart rsyslog
47 ansible.builtin.systemd_service:
48 name: rsyslog
49 enabled: true
50 state: restarted
51 when: ansible_service_mgr == "systemd"
52
53 - name: Set syslog flags for remote logging on FreeBSD
54 ansible.builtin.shell: sysrc syslog_flags="-s -v -v"
55 register: set_syslog_flags
56 changed_when: '"syslog_flags: -> YES" in set_syslog_flags.stdout'
57 when: ansible_service_mgr == "bsdinit"
58
59 - name: Set log forwarding on FreeBSD
60 ansible.builtin.lineinfile:
61 path: /etc/syslog.conf
62 line: "*.* @{{ctrl_headnet_ip_addr.stdout}}"
63 owner: root
64 group: wheel
65 mode: 0644
66 when: ansible_system == "FreeBSD"
67
68 - name: Restart syslogd
69 ansible.builtin.service:
70 name: syslogd
71 state: restarted
72 when: ansible_service_mgr == "bsdinit"