Files
raspi/playbooks/Update
2024-11-06 13:20:10 +00:00
..
2024-11-06 13:19:47 +00:00
2024-11-06 13:20:10 +00:00

Certainly! Below is an Ansible playbook to update and upgrade a Raspberry Pi system.

---
- name: Update and upgrade Raspberry Pi
  hosts: raspberry_pi
  become: yes
  tasks:
    - name: Update the APT package index
      apt:
        update_cache: yes

    - name: Upgrade all installed packages
      apt:
        upgrade: yes
        dist_upgrade: yes
        autoremove: yes
        autoclean: yes
        cache_valid_time: 3600  # Cache validity time in seconds

    - name: Ensure that Raspberry Pi firmware is up to date
      shell: sudo rpi-update
      args:
        creates: /boot/.firmware_up_to_date

    - name: Reboot if needed
      reboot:
        msg: "Rebooting the Raspberry Pi after update"
        reboot_timeout: 600
        test_command: uptime

Explanation of the Playbook:

  • hosts: raspberry_pi This refers to the group or host defined in your Ansible inventory that represents your Raspberry Pi device(s).
  • become: yes Ensures the playbook runs with sudo privileges for tasks that require administrative rights.

Tasks:

  1. Update the APT package index Ensures that the APT package manager has the latest information about available software packages.
  2. Upgrade all installed packages Installs the latest versions of all packages. The dist_upgrade ensures that package dependencies are also upgraded, and autoremove removes unnecessary packages, autoclean cleans up unused package files.
  3. Update Raspberry Pi firmware This runs rpi-update, a tool for upgrading the firmware on the Raspberry Pi.
  4. Reboot if needed Reboots the Raspberry Pi if any changes required a reboot (such as firmware updates). This ensures that the system is fully updated.

To run the playbook:

  1. Ensure you have an inventory file that includes your Raspberry Pi host(s). Example inventory (inventory.ini):

    [raspberry_pi]
    raspberrypi.local ansible_user=pi ansible_ssh_private_key_file=~/.ssh/id_rsa
    
  2. Execute the playbook using the following command:

    ansible-playbook -i inventory.ini update_raspberry_pi.yml
    

Make sure to replace raspberrypi.local with the actual IP or hostname of your Raspberry Pi, and adjust the SSH credentials accordingly.

Let me know if you need further assistance!