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