Playbooks I use for my homelab
1---
2- hosts: freebsd_servers
3 gather_facts: true
4 become: true
5
6 tasks:
7 - name: Update all installed packages
8 community.general.pkgng:
9 name: "*"
10 state: latest
11
12 - name: Update the base system
13 ansible.builtin.shell: freebsd-update fetch install --not-running-from-cron
14
15 - name: Get currently running FreeBSD kernel version in memory
16 ansible.builtin.shell: freebsd-version -r
17 register: running_kv
18
19 - name: Get newly installed kernel version
20 ansible.builtin.shell: freebsd-version -k
21 register: installed_kv
22
23 - name: Check for kernel version mismatch
24 set_fact:
25 reboot_required: "{{ running_kv.stdout != installed_kv.stdout }}"
26
27 - name: Display reboot status
28 ansible.builtin.debug:
29 msg: "Reboot required: {{ reboot_required }}"
30
31 - name: Reboot the FreeBSD server if needed
32 ansible.builtin.reboot:
33 reboot_timeout: 3600
34 when: reboot_required