apt — Управляет пакетами apt
Обзор
- Управляет пакетами apt (такими как для Debian/Ubuntu).
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python-apt (python 2)
- python3-apt (python 3)
- aptitude (до версии 2.4)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_unauthenticated (добавлено в 2.1) |
| Игнорировать, если пакеты не могут быть проверены. Это полезно для среды начальной настройки, которая управляет собственной настройкой apt-ключа. |
| autoclean (добавлено в 2.4) |
| Если yes, очищает локальный репозиторий от полученных файлов пакетов, которые больше нельзя загрузить. |
| autoremove (добавлено в 2.1) |
| Если yes, удаляет неиспользуемые зависимые пакеты для всех состояний модуля, кроме build-dep. Также может использоваться в качестве единственного параметра.До версии 2.4, autoclean также был алиасом для autoremove, теперь это отдельный командлет. Смотрите документацию для получения дополнительной информации. |
| cache_valid_time | По умолчанию: 0 | Обновить кэш apt, если он старше, чем cache_valid_time. Этот параметр задается в секундах. Начиная с Ansible 2.4, это подразумевает установку update_cache, если оно установлено. |
| deb (добавлено в 1.6) | Путь к пакету .deb на удаленной машине. Если в пути есть ://, Ansible попытается загрузить deb перед установкой. (Версия добавлена 2.1) | |
| default_release | Соответствует параметру -t для apt и устанавливает приоритеты пинов. | |
| dpkg_options | По умолчанию: force-confdef,force-confold | Добавить опции dpkg к команде apt. По умолчанию — '-o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold"' Опции должны быть перечислены через запятую. |
| force |
| Соответствует параметру --force-yes для apt-get и подразумевает allow_unauthenticated: yes.
Этот параметр отключит проверку подписей пакетов и сертификатов веб-серверов, с которых они загружаются. Этот параметр *не* эквивалентен передаче флага -f к apt-get в командной строке**Это деструктивное действие, которое может повредить вашу систему, и его следует использовать крайне редко.** Подробнее см. man apt-get. |
| force_apt_get (добавлено в 2.4) |
| Принудительное использование apt-get вместо aptitude |
| install_recommends |
| Соответствует параметру --no-install-recommends для apt. yes устанавливает рекомендуемые пакеты. no не устанавливает рекомендуемые пакеты. По умолчанию Ansible будет использовать те же значения, что и операционная система. Рекомендуемые пакеты никогда не устанавливаются.алиасы: install-recommends |
| name | Список имён пакетов, например, foo, или указание пакета с версией, например, foo=1.0. Также поддерживаются маски имен (fnmatch) типа apt* и маски версий типа foo=1.0*. алиасы: package, pkg | |
| only_upgrade (добавлено в 2.1) |
| Только обновление пакета, если он уже установлен. |
| purge |
| Принудительно очистит конфигурационные файлы, если состояние модуля установлено как absent. |
| state |
| Указывает желаемое состояние пакета. latest гарантирует, что установлена последняя версия. build-dep гарантирует, что установлены зависимости для сборки пакета. |
| update_cache |
| Выполнить эквивалент apt-get update перед операцией. Может выполняться как часть установки пакета, так и в качестве отдельного шага. |
| upgrade |
| Если да или safe, выполняет безопасное обновление aptitude. Если full, выполняет полное обновление aptitude. Если dist, выполняет apt-get dist-upgrade. Примечание: Это не обновляет конкретный пакет, для этого используйте state=latest. Примечание: С версии 2.4, apt-get используется как резервный вариант, если aptitude отсутствует. |
Примечания
Примечание
- Три режима обновления (
full,safeи его псевдонимyes) требовалиaptitudeдо версии 2.3, начиная с 2.4,apt-getиспользуется как резервный вариант. - apt по умолчанию запускает недавно установленные службы; это то, что делает базовое средство; для предотвращения этого можно установить переменную окружения
RUNLEVELв значение 1. - Командная строка apt-get поддерживает неявные совпадения с регулярными выражениями, но мы этого не делаем, так как это может пропустить ошибки (если вы ошибочно наберете
fooвместоfo, apt-get установит пакеты, содержащие «fo» в своём имени, с предупреждением и запросом на подтверждение у пользователя. Поскольку у нас нет предупреждений и запросов перед установкой, мы не допускаем этого. Используйте явное сопоставление fnmatch, если вам нужно использование подстановочных символов) - При использовании с
loop:, каждый пакет обрабатывается индивидуально; гораздо эффективнее передать список напрямую параметруname.
Примеры
- name: Update repositories cache and install "foo" package
apt:
name: foo
update_cache: yes
- name: Install apache service but avoid starting it immediately
apt: name=apache2 state=present
environment:
RUNLEVLEL: 1
- name: Remove "foo" package
apt: name=foo state=absent
- name: Install the package "foo"
apt:
name: foo
state: present
- name: Install the version '1.00' of package "foo"
apt:
name: foo=1.00
state: present
- 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: Upgrade all packages to the latest version
apt:
name: "*"
state: latest
- name: Update all packages to the latest version
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
Возвращаемые значения
Общие возвращаемые значения описаны в разделе, ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| cache_update_time int | успех, в некоторых случаях | время последнего обновления кэша (0, если неизвестно) Пример: 1425828348000 |
| cache_updated boolean | успех, в некоторых случаях | обновлен ли кэш или нет Пример: True |
| stderr строка | успех, при необходимости | вывод ошибок apt Пример: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to ... |
| stdout строка | успех, при необходимости | вывод apt Пример: Reading package lists... Building dependency tree... Reading state information... The following extra packages will be installed: apache2-bin ... |
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будет внесены несовместимые изменения в интерфейс.
Поддержка
Для получения дополнительной информации о поддержке этого модуля компанией Red Hat, обратитесь к этой статье базы знаний
Автор
- 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.5/modules/apt_module.html