ansible.builtin.apt – Управляет пакетами apt
Примечание
Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля apt, даже не указывая ключевое слово collections:. Несмотря на это, мы рекомендуем использовать полное имя класса (FQCN) для удобной ссылки на документацию модуля и для предотвращения конфликтов с другими коллекциями, которые могут иметь то же имя модуля.
Новый в версии 0.0.2: из ansible.builtin
Обзор
- Управляет пакетами apt (такими как для Debian/Ubuntu).
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- python-apt (python 2)
- python3-apt (python 3)
- aptitude (до версии 2.4)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_unauthenticated boolean добавлен в 2.1 из ansible.builtin |
| Игнорировать, если пакеты не могут быть проверены. Это полезно для создания сред, которые управляют своей собственной настройкой ключей apt. allow_unauthenticated поддерживается только со значением состояния: install/present
|
| autoclean boolean добавлен в 2.4 из ansible.builtin |
| Если yes, очищает локальный репозиторий от извлечённых файлов пакетов, которые больше нельзя загрузить. |
| autoremove boolean добавлен в 2.1 из ansible.builtin |
| Если yes, удаляет неиспользуемые зависимые пакеты для всех состояний модуля, кроме build-dep. Его также можно использовать в качестве единственного параметра.До версии 2.4, autoclean также был алиасом для autoremove, теперь это отдельные команды. Смотрите документацию для получения дополнительной информации. |
| cache_valid_time string | По умолчанию: 0 | Обновить кэш apt, если он старше, чем cache_valid_time. Этот параметр задаётся в секундах. Начиная с Ansible 2.4, если явно задано, это устанавливает update_cache=да. |
| deb string добавлен в 1.6 из ansible.builtin | Путь к пакету .deb на удалённой машине. Если в пути есть ://, Ansible попытается загрузить deb перед установкой. (Версия добавлена 2.1) Требуется пакет xz-utils, чтобы извлечь файл управления пакета deb для установки. | |
| default_release string | Соответствует параметру -t для apt и устанавливает приоритеты фиксации. | |
| dpkg_options string | По умолчанию: "force-confdef,force-confold" | Добавить параметры dpkg к команде apt. По умолчанию "-o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" Параметры должны быть указаны через запятую. |
| force boolean |
| Соответствует параметру --force-yes к apt-get и подразумевает allow_unauthenticated: yes
Этот параметр отключит проверку подписей пакетов и сертификатов веб-серверов, с которых они загружаются. Этот параметр *не* эквивалентен передаче флага -f команде apt-get в командной строке.**Это разрушительная операция, которая может повредить вашу систему, и её следует почти никогда не использовать.** Также см. man apt-get для получения дополнительной информации. |
| force_apt_get boolean добавлен в 2.4 из ansible.builtin |
| Принудительное использование apt-get вместо aptitude |
| install_recommends boolean |
| Соответствует параметру --no-install-recommends для apt. yes устанавливает рекомендуемые пакеты. no не устанавливает рекомендуемые пакеты. По умолчанию Ansible будет использовать те же значения по умолчанию, что и операционная система. Рекомендуемые пакеты никогда не устанавливаются.алиасы: install-recommends |
| name list / elements=string | Список имён пакетов, например foo, или спецификатор пакета с версией, например foo=1.0. Также поддерживаются шаблоны имён (fnmatch), такие как apt*, и шаблоны версий, такие как foo=1.0*. алиасы: package, pkg | |
| only_upgrade boolean добавлен в 2.1 из ansible.builtin |
| Только обновлять пакет, если он уже установлен. |
| policy_rc_d integer добавлен в 2.8 из ansible.builtin | Принудительно установить код возврата /usr/sbin/policy-rc.d. Например, если policy_rc_d=101, установленный пакет не запустит службу. Если /usr/sbin/policy-rc.d уже существует, он будет резервным копироваться и восстанавливаться после установки пакета. Если null, /usr/sbin/policy-rc.d не будет создан/изменён. | |
| purge boolean |
| Принудительно удалит файлы конфигурации, если состояние модуля установлено в absent. |
| state string |
| Указывает желаемое состояние пакета. latest гарантирует установку последней версии. build-dep гарантирует установку зависимостей сборки пакета. fixed попытается исправить систему с повреждёнными зависимостями. |
| update_cache boolean |
| Выполнить эквивалент apt-get update перед операцией. Может быть выполнен как часть установки пакета или как отдельный шаг.По умолчанию кэш не обновляется. |
| update_cache_retries integer добавлен в 2.10 из ansible.builtin | По умолчанию: 5 | Количество попыток, если обновление кэша завершится неудачей. Также см. update_cache_retry_max_delay. |
| update_cache_retry_max_delay integer добавлен в 2.10 из ansible.builtin | По умолчанию: 12 | Использовать экспоненциальную задержку повторных попыток для каждой попытки (см. update_cache_retries) до этой максимальной задержки в секундах. |
| upgrade string добавлен в 1.1 из ansible.builtin |
| Если да или безопасно, выполняет безопасное обновление aptitude. Если полностью, выполняет полное обновление aptitude. Если dist, выполняет apt-get dist-upgrade. Примечание: Это не обновляет конкретный пакет, используйте state=latest для этого. Примечание: С 2.4 apt-get используется в качестве резервного варианта, если aptitude отсутствует. |
Примечания
Примечание
- Три режима обновления (
full,safeи его псевдонимyes) требовалиaptitudeдо версии 2.3, начиная с 2.4,apt-getиспользуется в качестве резервного варианта. - В большинстве случаев пакеты, установленные с помощью apt, по умолчанию запускают новые установленные службы. У большинства дистрибутивов есть механизмы для предотвращения этого. Например, при установке Postgresql-9.5 в Debian 9, создание исполняемого скрипта оболочки (/usr/sbin/policy-rc.d), который возвращает код 101, остановит запуск Postgresql 9.5 после установки. Удалите файл или удалите его разрешение на выполнение после этого.
- Команда apt-get поддерживает неявные совпадения по регулярным выражениям здесь, но мы этого не делаем, так как это может привести к пропускам опечаток (Если вы напишете
fooкакfo, apt-get установит пакеты, которые содержат «fo» в их имени, с предупреждением и запросом у пользователя. Поскольку у нас нет предупреждений и запросов перед установкой, мы этого не разрешаем. Используйте явное соответствие fnmatch, если вам нужны шаблоны подстановок). - При использовании с
loop:, каждый пакет будет обрабатываться индивидуально, гораздо эффективнее передать список непосредственно в параметрname.
Примеры
- name: Install apache httpd (state=present is optional)
apt:
name: apache2
state: present
- name: Update repositories cache and install "foo" package
apt:
name: foo
update_cache: yes
- name: Remove "foo" package
apt:
name: foo
state: absent
- name: Install the package "foo"
apt:
name: foo
- name: Install a list of packages
apt:
pkg:
- foo
- foo-tools
- name: Install the version '1.00' of package "foo"
apt:
name: foo=1.00
- name: Update the repository cache and update package "nginx" to latest version using default release squeeze-backport
apt:
name: nginx
state: latest
default_release: squeeze-backports
update_cache: yes
- name: Install latest version of "openjdk-6-jdk" ignoring "install-recommends"
apt:
name: openjdk-6-jdk
state: latest
install_recommends: no
- name: Update all packages to their latest version
apt:
name: "*"
state: latest
- name: Upgrade the OS (apt-get dist-upgrade)
apt:
upgrade: dist
- name: Run the equivalent of "apt-get update" as a separate step
apt:
update_cache: yes
- name: Only run "update_cache=yes" if the last one is more than 3600 seconds ago
apt:
update_cache: yes
cache_valid_time: 3600
- name: Pass options to dpkg on run
apt:
upgrade: dist
update_cache: yes
dpkg_options: 'force-confold,force-confdef'
- name: Install a .deb package
apt:
deb: /tmp/mypackage.deb
- name: Install the build dependencies for package "foo"
apt:
pkg: foo
state: build-dep
- name: Install a .deb package from the internet
apt:
deb: https://example.com/python-ppq_0.1-1_all.deb
- name: Remove useless packages from the cache
apt:
autoclean: yes
- name: Remove dependencies that are no longer required
apt:
autoremove: yes
# Sometimes apt tasks fail because apt is locked by an autoupdate or by a race condition on a thread.
# To check for a lock file before executing, and keep trying until the lock file is released:
- name: Install packages only when the apt process is not locked
apt:
name: foo
state: present
register: apt_action
retries: 100
until: apt_action is success or ('Failed to lock apt for exclusive operation' not in apt_action.msg and '/var/lib/dpkg/lock' not in apt_action.msg)
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| cache_update_time целое число | успех, в некоторых случаях | время последнего обновления кэша (0, если неизвестно) Пример: 1425828348000 |
| cache_updated булево | успех, в некоторых случаях | обновлялся ли кэш или нет Пример: True |
| stderr строка | успех, когда необходимо | вывод ошибок от apt Пример: AH00558: apache2: Не удалось надёжно определить полное доменное имя сервера, используется 127.0.0.1. Установите директиву 'ServerName' глобально в ... |
| stdout строка | успех, когда необходимо | вывод от apt Пример: Чтение списка пакетов... Построение дерева зависимостей... Чтение информации о состоянии... Следующие дополнительные пакеты будут установлены: apache2-bin ... |
Авторы
- Matthew Williams (@mgwilliams)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/ansible/builtin/apt_module.html