Подробный гайд по управлению пакетами ansible.builtin.package в ALT Linux

Подробный гайд по модулю ansible.builtin.package для ALT Linux. Установка, обновление и удаление пакетов через apt-rpm с практическими примерами и нюансами.

2026.06.25                  


Подробный гайд по управлению пакетами ansible.builtin.package в ALT LinuxПодробный гайд по управлению пакетами ansible.builtin.package в ALT Linux Модуль ansible.builtin.package — это универсальный (абстрактный) модуль Ansible для управления пакетами. Его главная особенность в том, что он автоматически определяет операционную систему целевого хоста и использует «родной» для неё менеджер пакетов.

Поскольку в ALT Linux в качестве менеджера пакетов используется APT (точнее, его rpm-вариант — apt-rpm / apt-get), модуль package под капотом будет вызывать именно его.

Ниже представлен подробный гайд по использованию этого модуля специально для инфраструктуры на базе ALT Linux.


1. Базовый синтаксис и основные параметры

Для работы с пакетами требуются права суперпользователя, поэтому всегда используйте become: yes.

Основные параметры:

  1. name (обязательный) — имя пакета или список пакетов.
2. state — желаемое состояние пакета:
  • present (или installed) — установить пакет (если уже установлен, ничего не делает).
  • absent (или removed) — удалить пакет.
  • latest — установить последнюю доступную версию (обновить, если есть новая).
  1. update_cache — обновить кэш репозиториев перед установкой (аналог apt-get update). Работает только если state = present или latest.

  2. cache_valid_time — время в секундах. Если кэш был обновлен менее N секунд назад, update_cache будет проигнорирован (ускоряет выполнение плейбуков).


2. Практические примеры (YAML)

Установка одного пакета

- name: Установка веб-сервера Nginx
  ansible.builtin.package:
    name: nginx
    state: present
  become: yes

Установка нескольких пакетов сразу

В ALT Linux (как и в Debian/Ubuntu) можно передавать список пакетов. Это быстрее, чем создавать отдельную задачу для каждого пакета.

- name: Установка базовых утилит для администрирования
  ansible.builtin.package:
    name:
      - vim-enhanced
      - htop
      - mc
      - tmux
      - bash-completion
    state: present
  become: yes

Обновление кэша и установка (Best Practice)

В ALT Linux, как и в любом APT-дистрибутиве, перед установкой нужно обновить индексы репозиториев.

- name: Обновление кэша и установка PostgreSQL
  ansible.builtin.package:
    name: postgresql14-server
    state: present
    update_cache: yes
    cache_valid_time: 3600 # Обновлять кэш не чаще, чем раз в час
  become: yes

Обновление пакета до последней версии

Если вам нужно гарантировать, что пакет обновится до самой свежей версии из репозитория.

- name: Обновление ядра и системных библиотек
  ansible.builtin.package:
    name:
      - kernel-image-std-def
      - glibc-core
    state: latest
  become: yes

Удаление пакета

- name: Удаление ненужного FTP-сервера
  ansible.builtin.package:
    name: proftpd
    state: absent
  become: yes

Примечание:

state: absent удаляет пакет, но может оставить конфигурационные файлы. Если нужно удалить "подчистую", в ALT Linux лучше использовать специализированный модуль ansible.builtin.apt с параметром purge: yes (об этом ниже).


3. Специфика и нюансы ALT Linux

Хотя ansible.builtin.package отлично работает, при работе с ALT Linux нужно учитывать несколько важных моментов:

А. Именование пакетов

Имена пакетов в ALT Linux могут отличаться от Debian или RHEL.

  • Например, Apache в ALT называется apache2 (или apache2-base / apache2-mod_php), а не httpd.
  • Python может называться python3 или python3-base.

Совет:

Всегда проверяйте точное имя пакета через apt-cache search <имя> на тестовой машине ALT Linux перед написанием плейбука.


Б. Когда package недостаточно (переход на apt)

Модуль ansible.builtin.package — это "обертка". Если вам нужны специфичные для APT функции, которые не проброшены в package, используйте напрямую ansible.builtin.apt. Он полностью поддерживает apt-rpm в ALT Linux.


Пример: Полное удаление пакета с конфигами (purge)

- name: Полное удаление MySQL с конфигурацией
  ansible.builtin.apt:
    name: mysql-server
    state: absent
    purge: yes
  become: yes

Пример: Установка пакета без установки рекомендованных зависимостей

В ALT Linux пакеты часто тянут за собой много "рекомендуемых" (Recommends) зависимостей.

Если нужно сэкономить место:

- name: Установка пакета без рекомендуемых зависимостей
  ansible.builtin.apt:
    name: docker-ce
    state: present
    install_recommends: no
  become: yes

В. Обработка блокировок (Locks)

Если на хосте ALT Linux в этот момент работает apt-get (например, идет автоматическое обновление через apt-daily или работает другой администратор), Ansible может выдать ошибку блокировки.

Модуль packageapt) имеет встроенный механизм ожидания, но если вы сталкиваетесь с частыми ошибками, можно увеличить время ожидания или убедиться, что фоновые обновления отключены/настроены корректно.


Г. Работа с группами пакетов

В ALT Linux нет такой развитой системы "групп пакетов" (как @Development Tools в RPM), как в RHEL-системах. Поэтому в ALT Linux принято устанавливать метапакеты или использовать списки пакетов, как показано в примерах выше.


4. Полный пример плейбука для ALT Linux

Вот как может выглядеть типичная задача по подготовке сервера ALT Linux:

- name: Базовая настройка сервера ALT Linux
  hosts: alt_servers
  become: yes
  gather_facts: yes

  tasks:
    - name: Обновление кэша APT (если старше 1 часа)
      ansible.builtin.package:
        update_cache: yes
        cache_valid_time: 3600

    - name: Установка базового ПО
      ansible.builtin.package:
        name:
          - vim
          - mc
          - htop
          - net-tools
          - bind-utils
          - ansible # если нужно управлять с этого хоста
        state: present

    - name: Установка и обновление OpenSSH
      ansible.builtin.package:
        name: openssh-server
        state: latest

    - name: Удаление устаревшего telnet
      ansible.builtin.package:
        name: telnet-server
        state: absent

Важно:

  1. Используйте ansible.builtin.package для 95% рутинных задач (установка, удаление, обновление). Это делает ваш код кроссплатформенным.
  2. Всегда добавляйте update_cache: yes и cache_valid_time при первой установке пакетов, чтобы избежать ошибок "package not found".
  3. Если нужны специфичные действия (удаление с конфигами purge, отключение рекомендаций), переключайтесь на ansible.builtin.apt, так как под капотом ALT Linux использует именно APT.
  4. Внимательно проверяйте имена пакетов, так как репозитории ALT Linux (Sisyphus, p10, p11) имеют свою уникальную номенклатуру.

Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Денис Аверко @Nymexis г. Омск

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта