Skip to content
Snippets Groups Projects
update.yaml 4.86 KiB
---
- name: Update hosts
  strategy: host_pinned
  hosts:
    - all:!localhost
  tags:
    - update
  tasks:
    - name: Update Debian-based hosts
      when: ansible_facts.pkg_mgr == 'apt'
      tags:
        - debian
      block:
        - name: Update packages
          apt:
            autoclean: true
            purge: true
            update_cache: true
            upgrade: dist
          register: apt_upgrade

        - name: Remove no-longer needed dependencies
          apt:
            autoremove: true
            purge: true

        - name: Update firmware
          command: fwupdmgr --assume-yes update
          register: fwupdmgr
          changed_when: fwupdmgr.rc == 0
          # yamllint disable rule:line-length
          failed_when: fwupdmgr.rc not in [0, 2]

        - name: Gather package facts
          package_facts:

        - name: Update Flatpaks
          when: |-
            'flatpak' in ansible_facts.packages
          block:
            - name: Update Flatpaks appstream
              command:
                cmd: flatpak update --appstream
              changed_when: false

            - name: Update Flatpaks
              command:
                cmd: flatpak update --assumeyes
              register: flatpak_update
              changed_when: |-
                "Nothing to do" not in flatpak_update.stdout

            - name: Remove unused Flatpaks
              command:
                cmd: flatpak uninstall --unused --assumeyes
              register: flatpak_unused
              changed_when: |-
                "Nothing" not in flatpak_unused.stdout

        - name: Set reboot needed fact
          set_fact:
            reboot_needed: >-
              {{ apt_upgrade is changed or
              fwupdmgr is changed or
              flatpak_update is changed }}

    - name: Update OpenWRT hosts
      when: ansible_facts.pkg_mgr == 'opkg'
      tags:
        - openwrt