update: all; add zfs-log-compress.yml

+1 -1
check-borgmatic.yml
···
---
- name: Check the date of the last borgmatic archive
-
hosts: borgmatichosts
+
hosts: borgmatic_hosts
gather_facts: true
become: true
tasks:
+1 -1
debian-update.yml
···
---
-
- hosts: debianservers
+
- hosts: debian_servers
gather_facts: true
become: true
+24 -10
freebsd-update.yml
···
---
-
- hosts: freebsdservers
+
- hosts: freebsd_servers
gather_facts: true
become: true
-
vars:
-
jails:
-
- aa-torrenting
tasks:
- name: Update all installed packages
···
name: "*"
state: latest
-
- name: Update all installed packages in jails
-
community.general.pkgng:
-
name: "*"
-
state: latest
-
jail: "{{ item }}"
-
with_items: "{{ jails }}"
+
- name: Update the base system
+
ansible.builtin.shell: freebsd-update fetch install --not-running-from-cron
+
+
- name: Get currently running FreeBSD kernel version in memory
+
ansible.builtin.shell: freebsd-version -r
+
register: running_kv
+
+
- name: Get newly installed kernel version
+
ansible.builtin.shell: freebsd-version -k
+
register: installed_kv
+
+
- name: Check for kernel version mismatch
+
set_fact:
+
reboot_required: "{{ running_kv.stdout != installed_kv.stdout }}"
+
+
- name: Display reboot status
+
ansible.builtin.debug:
+
msg: "Reboot required: {{ reboot_required }}"
+
+
- name: Reboot the FreeBSD server if needed
+
ansible.builtin.reboot:
+
reboot_timeout: 3600
+
when: reboot_required
+11 -7
inventory.yml
···
-
borgmatichosts:
+
borgmatic_hosts:
hosts:
desktop:
ansible_user: jas
···
ansible_host: moonshadow.headscale.moonshadow.dev
ansible_python_interpreter: /usr/local/bin/python3
-
debianservers:
+
debian_servers:
hosts:
hyperreal.coffee:
ansible_user: jas
···
ansible_host: rpi400.headscale.moonshadow.dev
ansible_python_interpreter: /usr/bin/python3
-
freebsdservers:
+
freebsd_servers:
hosts:
nas:
ansible_user: jas
···
ansible_host: moonshadow.headscale.moonshadow.dev
ansible_python_interpreter: /usr/local/bin/python3
-
promservers:
+
prom_servers:
hosts:
desktop:
ansible_user: jas
ansible_host: localhost
ansible_python_interpreter: /usr/bin/python3
-
promclients:
+
prom_clients:
children:
-
debianservers:
-
freebsdservers:
+
debian_servers:
+
freebsd_servers:
+
+
zfs_hosts:
+
children:
+
freebsd_servers:
+1 -1
prometheus-clients.yml
···
---
-
- hosts: promclients
+
- hosts: prom_clients
tasks:
- name: Import Node Exporter role
import_role:
+1 -1
prometheus-servers.yml
···
---
-
- hosts: promservers
+
- hosts: prom_servers
tasks:
- name: Import Node Exporter role
import_role:
+1 -1
remote-logging-setup.yml
···
---
-
- hosts: debianservers,freebsdservers
+
- hosts: debian_servers,freebsd_servers
gather_facts: true
become: true
+38
zfs-log-compress.yml
···
+
# Based on https://github.com/FreeBSDFoundation/blog/blob/main/zfs-log-compression-on-freebsd/zfs_log_compress.yml
+
---
+
- name: Remove log compression on FreeBSD host, add timestamps to rotated logs
+
hosts: zfs_hosts
+
gather_facts: true
+
become: true
+
tasks:
+
- name: Set compression of /var/log dataset to zstd
+
community.general.zfs:
+
name: zroot/var/log
+
state: present
+
extra_zfs_properties:
+
compression: zstd
+
+
- name: Remove 'J' from the newsyslog.conf file
+
ansible.builtin.replace:
+
path: /etc/newsyslog.conf
+
regexp: "^J|J"
+
replace: ""
+
notify: "Restart newsyslog service"
+
+
- name: Use timestamps instead of numbers for log rotations
+
ansible.builtin.replace:
+
path: /etc/crontab
+
regexp: "newsyslog$"
+
replace: "newsyslog -t DEFAULT"
+
notify: "Restart syslogd service"
+
+
handlers:
+
- name: Restart newsyslog service
+
ansible.builtin.service:
+
name: newsyslog
+
state: restarted
+
+
- name: Restart syslogd service
+
ansible.builtin.service:
+
name: syslogd
+
state: restarted