apt_repository#
Модуль ansible.builtin.apt_repository управляет репозиториями в дистрибутивах Linux на базе Debian.
Особенности работы#
Для работы модуля на управляемом узле должны быть установлены следующие пакеты:
python3-apt(python-aptпри использовании интерпретатора Python 2);apt-keyилиgpg.
Параметры#
Модуль принимает следующие параметры:
- codename#
Кодовое название дистрибутива при использовании репозитория PPA (Personal Package Archive, личный архив пакетов).
Примечание
Как правило, значение этого параметра следует указывать при настройке репозитория PPA в дистрибутиве, не входящем в семейство Ubuntu (Astra Linux Special Edition, Debian, Mint и так далее).
- filename#
Название файла, создаваемого в каталоге
/etc/apt/sources.list.d/. Расширение.listдобавляется автоматически.Значение по умолчанию: вычисляется автоматически на основе URL репозитория.
- install_python_apt#
Автоматическая установка пакета
python3-apt(python-apt) при его отсутствии.Возможные значения:
true– если пакет отсутствует, модуль вызоветapt-get installдля его установки;false– модуль не будет пытаться установить пакет в систему.
Примечание
Этот параметр действует только в том случае, когда Ansible использует на управляемом узле системный интерпретатор Python. В противном случае установите значение
falseи убедитесь, что нужный пакет установлен для используемого интерпретатора Python.Значение по умолчанию:
true.
- mode#
Режим доступа к файлу, создаваемому в каталоге
/etc/apt/sources.list.d/.Значения могут быть следующих типов:
Восьмеричное число, например,
0644или0755. Обязательно указывать с ведущим нулем или в кавычках:0644;'644'.
Если указать
644, Ansible воспримет это как десятичное число, что приведет к непредсказуемому результату.Примечание
Добавление ведущего нуля иногда работает, но может дать сбой в циклах и некоторых других обстоятельствах.
Символьное значение, например,
u=rw,g=r,o=rилиu+rwx,g+rx,o=r.Специальное значение
preserve. При указании этого значения режим доступа к объекту файловой системы не изменяется.
Поведение по умолчанию:
если файл или каталог на управляемом узле уже существует, его режим доступа сохраняется;
если объект создается заново и параметр
modeне задан, режим доступа определяется системным значениемumaskна удаленном узле.
Предупреждение
Рекомендуется всегда явно задавать параметр
mode, чтобы избежать назначения небезопасных или непредсказуемых прав доступа. См. описание уязвимости CVE-2020-1736.Значение по умолчанию: определяется настройками ОС (как правило,
'0644').
- repo#
Обязательный параметр.
Строка со ссылкой на репозиторий, например:
deb https://dl.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free non-free-firmware
- state#
Состояние ссылки на репозиторий.
Возможные значения:
absent– ссылка на репозиторий не существует ни в одном из.list-файлов;present– ссылка существует в файле/etc/apt/sources.listили одном из.list-файлов в каталоге/etc/apt/sources.list.d/.
Значение по умолчанию:
present.
- update_cache, update-cache#
Обновление списка доступных пакетов после изменения списка репозиториев.
Возможные значения:
false– список доступных пакетов не обновляется.true– список доступных пакетов обновляется.Использование этого значения эквивалентно вызову команды
apt-get update.
Значение по умолчанию:
true.
- update_cache_retries#
Количество попыток обновить список доступных пакетов. Если за указанное количество попыток сделать этого не удастся, задача завершится с ошибкой.
Значение по умолчанию:
5.
- update_cache_retry_max_delay#
Максимально возможная задержка в секундах между попытками обновить список доступных пакетов.
Длительность задержки увеличивается экспоненциально, но не может превышать указанное значение.
Значение по умолчанию:
12.
- validate_certs#
Проверка сертификатов TLS при загрузке пакетов по протоколу HTTPS.
Возможные значения:
false– проверка отключена.Предупреждение
Это значение рекомендуется указывать только при подключении к собственным репозиториям, использующим самоподписанный сертификат.
true– проверка сертификатов выполняется.
Значение по умолчанию:
true.
Возвращаемые значения#
В этом списке указаны только возвращаемые значения, специфичные для модуля ansible.builtin.apt_repository.
repo– строка со ссылкой на репозиторий.Условия: возвращается всегда.
sources_added– список путей к созданным или измененным файлам.list.Условия: успешное добавление репозитория.
sources_removed– список путей к удаленным или измененным файлам.list.Условия: успешное удаление репозитория.
Атрибуты#
Атрибуты определяют функции Ansible, которые может использовать модуль.
|
Модуль поддерживает режим проверки в полном объеме. При запуске в режиме проверки модуль возвращает информацию об изменениях, которые произойдут управляемом узле, без фактического внесения изменений. Если по какой-то причине это невозможно, проверка будет пропущена. |
|---|---|
|
Модуль возвращает подробную информацию об изменениях, которые произошли (или произойдут, если используется режим проверки) на управляемых узлах. |
|
Модуль поддерживает только дистрибутивы Linux на базе Debian. |
Примеры#
Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.
Добавление репозитория Astra Automation#
Следующий пример описывает добавление репозитория Astra Automation с пакетами версии 1.2-upd1 путем создания в каталоге /etc/apt/sources.list.d/ файла с автоматически сгенерированным названием:
- name: Add Astra Automation repository
ansible.builtin.apt_repository:
repo: deb https://dl.astralinux.ru/aa/aa-debs-for-alse-1.8 1.2-upd1 main
state: present
В результате выполнения этой задачи в каталоге /etc/apt/sources.list.d/ создается файл dl_astralinux_ru_aa_aa_debs_for_alse_1_8.list.
Добавление репозитория в указанный файл#
Следующий пример описывает добавление репозитория Astra Automation с пакетами версии 1.2-upd1 путем создания в каталоге /etc/apt/sources.list.d/ файла astra-automation.list:
- name: Add Astra Automation repository to astra-automation.list
ansible.builtin.apt_repository:
repo: deb https://dl.astralinux.ru/aa/aa-debs-for-alse-1.8 1.2-upd1 main
state: present
filename: astra-automation
В результате выполнения этой задачи в каталоге /etc/apt/sources.list.d/ создается файл astra-automation.list.
Удаление репозитория#
Следующий пример описывает удаление ссылки на расширенный (extended) репозиторий Astra Linux Special Edition из файла /etc/apt/sources.list:
- name: Remove Astra Linux Special Edition extended repository
ansible.builtin.apt_repository:
repo: >-
deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/uu/1/repository-extended/
1.8_x86-64 main contrib non-free non-free-firmware
state: absent
Добавление репозитория и соответствующего ему ключа#
Следующий пример описывает подключение репозитория PostgreSQL:
---
- name: Install GPG key without apt-key
ansible.builtin.get_url:
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
dest: /etc/apt/keyrings/pgdg.asc
- name: Add link to repository
ansible.builtin.apt_repository:
repo: >-
deb [signed-by=/etc/apt/keyrings/pgdg.asc]
https://apt.postgresql.org/pub/repos/apt
bookworm-pgdg main
state: present
filename: pgdg
В результате выполнения этого сценария выполняются следующие действия:
загрузка ключа GPG и его сохранение в файл
/etc/apt/keyrings/pgdg.asc;добавление репозитория PostgreSQL с пакетами для Debian Bookworm.
Для проверки подписи пакетов используется загруженный ключ GPG.
Добавление двух репозиториев#
Следующий пример описывает подключение двух репозиториев и загрузку двух соответствующих им ключей GPG. Обновление списка доступных пакетов при этом выполняется только один раз.
---
- name: Install GPG key for PostgreSQL repository
ansible.builtin.get_url:
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
dest: /etc/apt/keyrings/pgdg.asc
- name: Add link to PostgreSQL repository
ansible.builtin.apt_repository:
repo: >-
deb [signed-by=/etc/apt/keyrings/pgdg.asc]
https://apt.postgresql.org/pub/repos/apt
bookworm-pgdg main
state: present
filename: pgdg
update_cache: false
- name: Install GPG key for NodeSource repository
ansible.builtin.get_url:
url: https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key
dest: /etc/apt/keyrings/nodesource-repo.gpg.key
- name: Add link to NodeJS v22 repository
ansible.builtin.apt_repository:
repo: >-
deb [signed-by=/etc/apt/keyrings/nodesource-repo.gpg.key]
https://deb.nodesource.com/node_22.x
nodistro main
state: present
filename: nodesources
update_cache: true