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