apt_key#

Модуль ansible.bultin.apt_key позволяет управлять ключами менеджера APT. Эти ключи используются для проверки целостности пакетов, загружаемых из репозиториев в дистрибутивах Linux на базе Debian, в том числе Astra Linux Special Edition.

Важно

Используемая модулем команда apt-key считается устаревшей. Подробности см. в Debian Wiki. Модуль ansible.builtin.apt_key оставлен с целью обеспечения обратной совместимости с системами, использующими apt-key как основной способ управления ключами репозиториев.

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

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

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

Если state=present и заданы значения параметров id и url, модуль при необходимости выполнит загрузку или проверку ключа.

Добавление ключа требует обновления списка доступных пакетов, например, с помощью настройки update_cache модуля ansible.builtin.apt.

Параметры#

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

data#

Ключ цифровой подписи.

file#

Путь к файлу с ключом цифровой подписи на сервере ключей.

id#

Идентификатор ключа.

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

При указании идентификатора подключа утилита apt-key не может определить какой из установленных ключей нужно удалить. Поэтому вместо идентификатора подключа всегда указывайте идентификатор самого ключа.

Этот параметр обязателен для заполнения, если значение state=absent.

Используйте полный идентификатор ключа (40 символов), чтобы избежать возможных коллизий. Для получения полных идентификаторов загруженных ключей выполните команду:

apt-key adv \
  --list-public-keys \
  --with-fingerprints \
  --with-colons
keyring#

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

По умолчанию файлы ключа устанавливаются в каталог /etc/apt/trusted.gpg.d/.

keyserver#

Сервер ключей.

state#

Состояние ключа.

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

  • absent – удален;

  • present – установлен.

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

url#

URL для получения ключа.

validate_certs#

Проверка сертификата TLS при загрузке ключа с сервера.

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

  • true – включена;

  • false – выключена.

    Предупреждение

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

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

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

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

  • after – список идентификаторов или отпечатков ключей после их изменения.

    Условия: изменение установленных ключей.

  • before – список идентификаторов или отпечатков ключей перед их изменением.

    Условия: значение возвращается всегда.

  • fp – отпечаток импортированного ключа.

    Условия: значение возвращается всегда.

  • id – идентификатор ключа, полученный из источника.

    Условия: значение возвращается всегда.

  • key_id – вычисленный идентификатор ключа.

    Значение должно совпадать со значением параметра id, но фактически может отличаться.

    Условия: значение возвращается всегда.

  • short_id – вычисленный сокращенный идентификатор ключа.

    Условия: значение возвращается всегда.

Атрибуты#

Атрибуты определяют функции Ansible, которые может использовать модуль.

Атрибут

Описание

check_mode

Модуль работает в режиме проверки (check_mode) в полном объеме. Режим проверки позволяет узнать, что произойдет с ключами при выполнении заданий.

diff_mode

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

platform

Модуль поддерживает только дистрибутивы Linux на базе Debian.

Примеры#

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

Загрузка ключа с сервера#

Следующий пример описывает загрузку ключа с идентификатором 36A1D7869245C8950F966E92D8576A8BA88D21E9 с сервера keyserver.ubuntu.com:

---
- name: Add key from server
  ansible.builtin.apt_key:
    keyserver: keyserver.ubuntu.com
    id: 36A1D7869245C8950F966E92D8576A8BA88D21E9

Загрузка ключа по ссылке#

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

---
- name: Download PostgreSQL key always
  ansible.builtin.apt_key:
    url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
    state: present

Загрузка ключа по необходимости#

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

---
- name: Download PostgreSQL key only when empty
  ansible.builtin.apt_key:
    url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
    state: present
    id: B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8

Удаление ключа#

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

---
- name: Remove APT key
  ansible.builtin.apt_key:
    id: 0xB97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
    state: absent

Установка ключа из файла#

Следующий пример описывает установку защищенного (armored) ключа из файла, размещенного в каталоге проекта Ansible:

---
- name: Add key from managed node
  ansible.builtin.apt_key:
    data: "{{ lookup('ansible.builtin.file', 'apt.asc') }}"
    state: present

Установка ключа в указанный каталог#

Следующий пример описывает загрузку ключа по ссылке и его установку в файл /etc/apt/keyrings/pgdg.asc:

---
- name: Install key file to /etc/apt/keyrings/pgdg.asc
  ansible.builtin.apt_key:
    id: 0xB97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
    url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
    keyring: /etc/apt/keyrings/pgdg.asc