deb822_repository#

Модуль ansible.builtin.deb822_repository управляет репозиториями в дистрибутивах Linux на базе Debian, используя записи в формате DEB822 (файлы с расширением sources в каталоге /etc/apt/sources.list.d/).

Особенности работы#

Для работы модуля на управляемом узле должен быть установлен пакет python3-debian (python-debian при использовании интерпретатора Python 2).

Этот модуль не обновляет список доступных пакетов автоматически. Для этого используйте возможности модуля apt.

Параметры#

Модуль принимает следующие параметры:

allow_downgrade_to_insecure#

Установка более старых версий пакетов, которые раньше были доверенными, но теперь не являются таковыми.

Возможные значения:

  • false – установка запрещена;

  • true – установка разрешена.

allow_insecure#

Использование недоверенных репозиториев.

Возможные значения:

  • false – запрещено;

  • true – разрешено.

allow_weak#

Использование репозиториев, пакеты в которых подписаны ключами, созданными на основе слабых алгоритмов шифрования.

Возможные значения:

  • false – запрещено;

  • true – разрешено.

arhchitectures#

Список архитектур, доступных в репозитории.

by_hash#

Управление поведением менеджера APT при попытке получить индексы.

Возможные значения:

  • false – загрузка файла индекса по его хорошо известному названию;

  • true – использование контрольной суммы для загрузки индекса.

check_date#

Должен ли менеджер APT считать время на управляемом узле правильным и, следовательно, выполнять связанные с этим проверки. Например, что время в файле Release не опережает системное.

Возможные значения:

  • false – игнорировать время на управляемом узле;

  • true – учитывать время на управляемом узле.

check_valid_until#

Проверка поля репозитория Valid-Until.

Возможные значения:

  • false – проверка выключена, менеджер APT не пытается обнаружить атаки типа replay;

  • true – проверка включена, то есть менеджер APT проверяет указанное поле.

components#

Список компонентов репозитория.

Репозиторий Astra Automation предоставляет только один компонент – main.

Репозитории Astra Linux Special Edition 1.8 предоставляют следующие компоненты:

  • main;

  • contrib;

  • non-free;

  • non-free-firmware.

Примечание

Актуальная информация о компонентах репозиториев Astra Linux Special Edition доступна в статьях Справочного центра:

date_max_future#

На сколько секунд время в репозитории может опережать системное время управляемого узла.

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

enabled#

Использование репозитория.

Возможные значения:

  • false – содержимое файла закомментировано и не используется менеджером APT;

  • true – менеджер APT использует содержимое репозитория.

inrelease_path#

Путь к файлу InRelease в репозитории относительно его обычного расположения.

languages#

Список языков, который менеджер APT использует при загрузке файлов с переводами.

По умолчанию менеджер APT пытается отобразить перевод информации о пакете, используя следующий порядок языков:

  1. environment – язык определяется по значениям переменных окружения. Если перевод для используемого языка существует, он будет использован.

  2. en – английский.

Например, пусть значение languages задано следующим образом:

# ...
languages:
  - fr  # французский
  - ru  # русский

Язык вывода информации о пакетах из репозитория в этом случае определяется по следующему алгоритму:

  1. Если перевод на французский язык существует и загружен, информация о пакете будет выведена на французском языке.

  2. Если перевод на французский язык не существует или не загружен, APT попытается найти перевод на русский язык. Если перевод на русский язык существует и загружен, информация о пакете будет выведена на русском языке.

  3. Если перевод на русский язык не существует или не загружен, APT выведен описание пакета на английском языке.

Подробности см. в руководстве к файлу apt.conf:

man apt.conf
mode#

Восьмеричное значение режима доступа к файлу, создаваемому в /etc/apt/sources.list.d/.

Значение по умолчанию: 0644.

name#

Обязательный параметр.

Название репозитория.

Как правило, используется в значении настройки X-Repolib-Name при именовании репозитория и соответствующих ему ключей цифровой подписи:

  • В каталоге /etc/apt/sources.list.d/ создается файл, название которого формируется по шаблону:

    <name>.sources
    
  • Если в значении настройки signed_by указана ссылка на загрузку ключа GPG, файл ключа будет сохранен в каталог /etc/apt/keyrings/ под указанным названием, а в sources-файл добавлена строка следующего вида:

    Signed-By: /etc/apt/keyrings/<name>
    

Подробности см. в секции Примеры.

pdiffs#

Управление поведением менеджера APT при загрузке индекса.

Возможные значения:

  • false – загрузка полного индекса;

  • true – загрузка только файлов со списком различий (PDiffs).

Подробности о PDiffs см. в документации Debian.

signed_by#

Ключ GPG для проверки пакетов из репозитория. Значение может указывать на следующие объекты:

  • URL:

    # ...
    ansible.builtin.deb822_repository:
      # ...
      signed_by: https://www.postgresql.org/media/keys/ACCC4CF8.asc
    
  • Полный путь к файлу ключа в локальной файловой системе управляемого узла:

    # ...
    ansible.builtin.deb822_repository:
      # ...
      signed_by: /etc/apt/keyrings/nodesources.gpg
    
  • Один или несколько отпечатков ключа, хранящихся в файле trusted.gpg или файлах в каталоге /etc/apt/trusted.gpg.d/:

    # ...
    ansible.builtin.deb822_repository:
      # ...
      signed_by: 224974DB7FED6DECB7D855EF60B9CD3A083A7A9A
    
  • Защищенный (armored) ключ GPG в текстовом виде:

    # ...
    ansible.builtin.deb822_repository:
      # ...
      signed_by: |
        -----BEGIN PGP PUBLIC KEY BLOCK-----
        mQENBFdDN1ABCADaNd/I3j3tn40deQNgz7hB2NvT+syXe6k4ZmdiEcOfBvFrkS8B
        hNS67t93etHsxEy7E0qwsZH32bKazMqe9zDwoa3aVImryjh6SHC9lMtW27JPHFeM
        Srkt9YmH1WMwWcRO6eSY9B3PpazquhnvbammLuUojXRIxkDroy6Fw4UKmUNSRr32
        9Ej87jRoR1B2/57Kfp2Y4+vFGGzSvh3AFQpBHq51qsNHALU6+8PjLfIt+5TPvaWR
        TB+kAZnQZkaIQM2nr1n3oj6ak2RATY/+kjLizgFWzgEfbCrbsyq68UoY5FPBnu4Z
        E3iDZpaIqwKr0seUC7iA1xM5eHi5kty1oB7HABEBAAG0Ik5Tb2xpZCA8bnNvbGlk
        LWdwZ0Bub2Rlc291cmNlLmNvbT6JATgEEwECACIFAldDN1ACGwMGCwkIBwMCBhUI
        AgkKCwQWAgMBAh4BAheAAAoJEC9ZtfmbG+C0y7wH/i4xnab36dtrYW7RZwL8i6Sc
        NjMx4j9+U1kr/F6YtqWd+JwCbBdar5zRghxPcYEq/qf7MbgAYcs1eSOuTOb7n7+o
        xUwdH2iCtHhKh3Jr2mRw1ks7BbFZPB5KmkxHaEBfLT4d+I91ZuUdPXJ+0SXs9gzk
        Dbz65Uhoz3W03aiF8HeL5JNARZFMbHHNVL05U1sTGTCOtu+1c/33f3TulQ/XZ3Y4
        hwGCpLe0Tv7g7Lp3iLMZMWYPEa0a7S4u8he5IEJQLd8bE8jltcQvrdr3Fm8kI2Jg
        BJmUmX4PSfhuTCFaR/yeCt3UoW883bs9LfbTzIx9DJGpRIu8Y0IL3b4sj/GoZVq5
        AQ0EV0M3UAEIAKrTaC62ayzqOIPa7nS90BHHck4Z33a2tZF/uof38xNOiyWGhT8u
        JeFoTTHn5SQq5Ftyu4K3K2fbbpuu/APQF05AaljzVkDGNMW4pSkgOasdysj831cu
        ssrHX2RYS22wg80k6C/Hwmh5F45faEuNxsV+bPx7oPUrt5n6GMx84vEP3i1+FDBi
        0pt/B/QnDFBXki1BGvJ35f5NwDefK8VaInxXP3ZN/WIbtn5dqxppkV/YkO7GiJlp
        Jlju9rf3kKUIQzKQWxFsbCAPIHoWv7rH9RSxgDithXtG6Yg5R1aeBbJaPNXL9wpJ
        YBJbiMjkAFaz4B95FOqZm3r7oHugiCGsHX0AEQEAAYkBHwQYAQIACQUCV0M3UAIb
        DAAKCRAvWbX5mxvgtE/OB/0VN88DR3Y3fuqy7lq/dthkn7Dqm9YXdorZl3L152eE
        IF882aG8FE3qZdaLGjQO4oShAyNWmRfSGuoH0XERXAI9n0r8m4mDMxE6rtP7tHet
        y/5M8x3CTyuMgx5GLDaEUvBusnTD+/v/fBMwRK/cZ9du5PSG4R50rtst+oYyC2ao
        x4I2SgjtF/cY7bECsZDplzatN3gv34PkcdIg8SLHAVlL4N5tzumDeizRspcSyoy2
        K2+hwKU4C4+dekLLTg8rjnRROvplV2KtaEk6rxKtIRFDCoQng8wfJuIMrDNKvqZw
        FRGt7cbvW5MCnuH8MhItOl9Uxp1wHp6gtav/h8Gp6MBa
        =MARt
        -----END PGP PUBLIC KEY BLOCK-----
    
state#

Состояние файла с описанием репозитория.

Возможные значения:

  • absent – отсутствует;

  • present – присутствует.

Значение по умолчанию: present.

suites#

Набор или список наборов пакетов дистрибутива.

Значение этого параметра может быть задано двумя способами:

  • Точный путь относительно URI репозитория. В этом случае указанное значение должно завершаться символом /.

  • Название или версия дистрибутива, например:

    • 1.8_x86-64 – Astra Linux Special Edition 1.8;

    • 1.7_x86-64 – Astra Linux Special Edition 1.7;

    • 4.7_arm – Astra Linux Special Edition 4.7;

    • bookworm – основные пакеты Debian Bookworm;

    • bookworm-security – обновления безопасности для Debian Bookworm;

    • noble – Ubuntu Noble Numbat.

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

targets#

Список целей, которые менеджер APT попытается получить из источника при выполнении команды update.

По умолчанию используется значение, заданное в настройке менеджера APT Acquire::IndexTargets.

Подробности см. в документации менеджера APT.

trusted#

Уровень доверия к репозиторию.

Возможные значения:

  • true – считать репозиторий доверенным, то есть не проверять цифровую подпись пакетов;

  • false – использовать ключ GPG для проверки цифровой подписи пакетов.

types#

Тип пакетов или список типов пакетов, которые менеджер APT должен обрабатывать при работе с репозиторием.

Возможные значения:

  • deb – DEB-пакеты;

  • deb-src – исходный код.

Значение по умолчанию: ["deb"] (только DEB-пакеты).

uris#

URI или список URI архивов дистрибутива, из которых менеджер APT при необходимости может получить данные.

Возвращаемые значения#

В этом списке указаны только возвращаемые значения, специфичные для модуля ansible.builtin.deb822_repository.

  • dest – путь к файлу с данными репозитория.

    Условия: всегда.

  • key_filename – путь к файлу ключа, используемому для проверки цифровой подписи репозитория.

    Условия: всегда.

  • repo – строка с информацией о репозитории.

    Условия: всегда.

Примеры#

Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.

Репозиторий Astra Linux Special Edition 1.8#

Следующий пример описывает подключение основного репозитория Astra Linux Special Edition 1.8:

---
- name: Репозиторий Astra Linux Special Edition 1.8
  ansible.builtin.deb822_repository:
    name: astra-linux
    components:
      - main
      - non-free
      - contrib
      - non-free-firmware
    state: present
    suites: 1.8_x86-64
    types: deb
    uris: https://download.astralinux.ru/astra/stable/1.8_x86-64/main-repository/

Репозиторий PostgreSQL#

Следующий пример описывает подключение основного репозитория PostgreSQL:

---
- name: Репозиторий PostgreSQL
  ansible.builtin.deb822_repository:
    architectures: amd64
    components: main
    name: pgdg
    signed_by: https://www.postgresql.org/media/keys/ACCC4CF8.asc
    state: present
    suites: bookworm-pgdg
    types: deb
    uris: https://apt.postgresql.org/pub/repos/apt

В результате выполнения этой задачи в системе происходят следующие изменения:

  • Файл ключа GPG загружается по указанному URL и сохраняется в каталог /etc/apt/keyrings/ под названием pgdg.asc.

  • В каталоге /etc/apt/sources.list.d/ создается файл pgdg.sources со следующим содержимым:

    Components: main
    X-Repolib-Name: pgdg
    Signed-By: /etc/apt/keyrings/pgdg.asc
    Suites: bookworm-pgdg
    Types: deb
    URIs: https://apt.postgresql.org/pub/repos/apt