package-install
cans.package-install
Простая роль Ansible, которая устанавливает заданный список пакетов Debian
(.deb
).
Цель этой роли - предоставить минималистичный, но эффективный и многоразовый метод установки пакетов. Это по сути процедура, которая, получив список пакетов, устанавливает их.
Требования
У данной роли нет особых предварительных требований. Однако предполагается, что целевой сервер(ы) использует дистрибутив Debian или его производные.
Переменные роли
Все переменные в этой роли имеют префикс pkginstall_
.
Эта роль также определяет переменные для внутреннего использования. Они начинаются с _pkginstall_
. Вам не следует использовать эти переменные.
Входные переменные
Для того чтобы эта роль выполнила какую-либо задачу, вы должны определить одну или обе из переменных pkginstall_packages_absent
и pkginstall_packages_present
.
pkginstall_packages
: УСТАРЕЛО Используйте вместо этогоpkginstall_packages_present
(по умолчанию:[]
);pkginstall_packages_present
: список имен пакетов, которые необходимо установить на целевом хосте (по умолчанию:[]
);pkginstall_packages_absent
: список имен пакетов, которые необходимо не устанавливать на целевом хосте (по умолчанию:[]
);
Значения по умолчанию
pkginstall_apt_package_list_cache_directory
: путь к каталогу, который хранит доступные списки пакетов и списки содержимого пакетов. Эта переменная требуется только в том случае, если вы установилиpkginstall_cache_purge
вtrue
(см. ниже). Вряд ли вам когда-либо потребуется это изменять. (по умолчанию:"/var/lib/apt/lists"
)pkginstall_cache_ttl
: продолжительность действия кэша пакетов, в секундах (по умолчанию: 3600)pkginstall_cache_update
: обновлять кэш пакетов перед установкой пакетов или нет (по умолчанию:true
)pkginstall_purge
: при удалении пакетов также удалять их конфигурационные файлы (по умолчанию:true
);pkginstall_recommended
: устанавливать ли рекомендуемые пакеты вместе с явно перечисленными пакетами для установки (по умолчанию:false
).pkginstall_update_cache
: УСТАРЕЛО используйте вместо этогоpkginstall_cache_update
(по умолчанию:true
)
Зависимости
У данной роли нет формальных зависимостей. Но вам нужно переопределить переменную pkginstall_packages
, чтобы фактически выполнить какие-либо действия (см. пример плейбука ниже).
Вам также может быть интересно использовать роль cans.package-source
вместе с этой, чтобы добавить дополнительные репозитории пакетов к уже известным APT.
Примеры плейбуков
Предположим, у вас есть две роли, first_role
и second_role
, каждая из которых определяет переменную с списком пакетов для установки, скажем, first_role_packages
и second_role_packages
, соответственно. Затем вы можете, чтобы использовать эту роль, начать с присвоения переменной pkginstall_packages
объединения обоих списков. Затем просто вызовите роль.
- hosts: servers
vars:
pkginstall_packages: "{{ first_role_packages + second_role_packages }}"
roles:
- role: cans.package-install
- role: first_role
- role: second_role
Если по какой-то причине вы не можете установить все пакеты сразу (например, потому что first_role
устанавливает или настраивает что-то, необходимое перед установкой пакетов, требуемых second_role
):
- hosts: servers
roles:
- role: cans.package-install
pkginstall_packages: "{{ first_role_packages }}"
- role: first_role
- role: cans.package-install
pkginstall_packages: "{{ second_role_packages }}"
- role: second_role
В приведенных выше примерах предполагается, что Ansible подключается к целевым серверам с учетной записью, обладающей достаточными привилегиями для установки пакетов. Если это не так, вам может понадобиться использовать одну или обе الكلمات ключей remote_user
и become
:
- hosts: servers
remote_user: "привилегированный-пользователь"
vars:
pkginstall_packages: "{{ first_role_packages + second_role_packages }}"
roles:
- role: cans.package-install
become: yes
- role: first_role
- role: second_role
Лицензия
GPLv2
Информация об авторе
Copyright © 2017-2018, Nicolas CANIART.
Simple Ansible Role that installs a given list of Debian packages (`.deb`).
ansible-galaxy install cans/package-install