Files
Nuc_AWX/playbooks/update_repositories.yml

72 lines
2.4 KiB
YAML
Raw Permalink 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.
---
- name: Automatically set up-to-date APT repositories (Debian/Raspberry Pi)
hosts: all
become: yes
gather_facts: yes
vars:
distro_codename: "{{ ansible_distribution_release }}"
# Содержимое для /etc/apt/sources.list (CDN Debian)
sources_list_content: |
deb https://deb.debian.org/debian {{ distro_codename }} main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security {{ distro_codename }}-security main contrib non-free non-free-firmware
deb https://deb.debian.org/debian {{ distro_codename }}-updates main contrib non-free non-free-firmware
# Содержимое для raspi.list (только если это Raspberry Pi)
raspi_list_content: |
deb http://archive.raspberrypi.com/debian/ {{ distro_codename }} main
tasks:
# 1. Удаляем все старые файлы в /etc/apt/sources.list.d/,
# чтобы исключить конфликты (включая .sources и .list)
- name: Backup current sources.list.d directory
copy:
src: /etc/apt/sources.list.d
dest: "/etc/apt/sources.list.d.backup_{{ ansible_date_time.epoch }}"
remote_src: yes
ignore_errors: yes
- name: Remove all files in /etc/apt/sources.list.d/
file:
path: "{{ item }}"
state: absent
loop:
- /etc/apt/sources.list.d/debian.sources
- /etc/apt/sources.list.d/raspi.sources
- /etc/apt/sources.list.d/raspi.list
- /etc/apt/sources.list.d/*.list
- /etc/apt/sources.list.d/*.sources
loop_control:
loop_var: item
ignore_errors: yes
# 2. Создаём основной sources.list
- name: Write /etc/apt/sources.list
copy:
content: "{{ sources_list_content }}"
dest: /etc/apt/sources.list
owner: root
group: root
mode: '0644'
# 3. Если это Raspberry Pi – создаём raspi.list
- name: Check if system is Raspberry Pi
stat:
path: /etc/rpi-issue
register: rpi_check
- name: Write /etc/apt/sources.list.d/raspi.list (only on Raspberry Pi)
copy:
content: "{{ raspi_list_content }}"
dest: /etc/apt/sources.list.d/raspi.list
owner: root
group: root
mode: '0644'
when: rpi_check.stat.exists
# 4. Обновляем кэш APT
- name: Update APT cache
apt:
update_cache: yes
cache_valid_time: 3600