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