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

59 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Certainly! Below is an Ansible playbook to update and upgrade a Raspberry Pi system.
```yaml
---
- 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:
```bash
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!