Files
ansible/update.yml

93 lines
3.2 KiB
YAML
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.
- 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: "Обновление системы завершено!"