commit af06a2141a00a29f34c873448d0ec8c14126e54f Author: smolkik_adm Date: Mon May 4 05:04:17 2026 +0000 Добавить update.yml diff --git a/update.yml b/update.yml new file mode 100644 index 0000000..b3a712a --- /dev/null +++ b/update.yml @@ -0,0 +1,93 @@ +- name: Обновить систему Linux + hosts: all + become: yes + vars: + packages_to_update: + - apt-get: + release: stable + apt: + release: stable + dnf: + release: stable + safe_packages: + - sshd + - openssh-server + - ssh-client + + tasks: + - name: Проверить дистрибутив + shell: cat /etc/*release + register: distro_info + changed_when: false + + - name: Обновить списки пакетов + block: + - name: Обновить списки пакетов (APT) + apt: + update_cache: yes + when: distro_info.stdout | regex_search("Ubuntu|Debian") + + - name: Обновить списки пакетов (DNF) + dnf: + update_cache: yes + when: distro_info.stdout | regex_search("CentOS|Fedora|RHEL|AlmaLinux|Rocky") + + - name: Обновить списки пакетов (YUM) + yum: + update_cache: yes + when: distro_info.stdout | regex_search("CentOS|Fedora|RHEL|AlmaLinux|Rocky") + always: + - name: Обновить списки пакетов (позитивное завершение) + debug: + msg: "Списки пакетов обновлены (или обновлены списки для вашей системы)" + + - name: Обновить пакеты (APT) + apt: + upgrade: yes + dist_upgrade: yes + autoremove: yes + auto_remove: yes + when: distro_info.stdout | regex_search("Ubuntu|Debian") + + - name: Обновить пакеты (DNF/YUM) + package: + name: '*' + state: latest + when: distro_info.stdout | regex_search("CentOS|Fedora|RHEL|AlmaLinux|Rocky") + + - name: Обновить безопасные пакеты + package: + name: '{{ safe_packages }}' + state: latest + + - name: Подсчитать обновленные пакеты + command: apt --check-upgrade 2>&1 | grep -c 'Package' + register: apt_package_count + failed_when: false + when: distro_info.stdout | regex_search("Ubuntu|Debian") + + - name: Подсчитать обновленные пакеты (RHEL) + command: dnf check-update 2>&1 | grep -c 'Package' + register: dnf_package_count + failed_when: false + when: distro_info.stdout | regex_search("CentOS|Fedora|RHEL|AlmaLinux|Rocky") + + - name: Вывести отчёт + debug: + msg: "Обновлено пакетов: {{ apt_package_count.stdout }} или {{ dnf_package_count.stdout }}" + + - name: Проверить, есть ли обновления (APT) + command: apt --dry-run upgrade + register: apt_upgrades + failed_when: false + changed_when: false + when: distro_info.stdout | regex_search("Ubuntu|Debian") + + - name: Вывести, какие пакеты будут обновлены + debug: + msg: "Пакеты, которые будут обновлены: {{ apt_upgrades.stdout_lines }}" + when: apt_upgrades.rc == 0 + + - name: Завершить с сообщением об успехе + debug: + msg: "Обновление системы завершено!" \ No newline at end of file