package
Пакет
Роль для управления пакетами на различных операционных системах.
Эта роль поддерживает apt, yum, dnf, brew, zypper, pacman и portage. Не стесняйтесь отправлять запрос на изменение или добавление вашего любимого менеджера пакетов!
Внимание:
- Эта роль учитывает различия в названиях между менеджерами пакетов, но не между дистрибутивами, использующими один и тот же менеджер пакетов.
- Покрытие тестами довольно небольшое, поэтому, пожалуйста, сообщайте об ошибках!
Требования
- Хосты должны быть подготовлены для использования ansible (иметь python и т. д.)
- Привилегии root, например
become: yes
Переменные роли
Переменная | Описание | Значение по умолчанию |
---|---|---|
package_list |
Список пакетов (см. детализовано!) | [] |
package_list_host |
Список пакетов (см. детализовано!) | [] |
package_list_group |
Список пакетов (см. детализовано!) | [] |
package_state |
Состояние по умолчанию для пакетов | 'present' |
package_update_cache |
Обновить кеш? | yes |
package_cache_valid_time |
Как долго кеш пакетов остается действительным? (в секундах) | 3600 |
Детали package_list
package_list
, package_list_host
и package_list_group
объединяются при управлении пакетами. Вы можете использовать списки хостов и групп для указания пакетов для каждого хоста или группы.
Список пакетов позволяет определить, какие пакеты должны управляться. Каждый элемент в списке может иметь следующие атрибуты:
Переменная | Описание | Обязательно |
---|---|---|
name |
Название пакета | да |
state |
Состояние пакета | нет |
apt |
Название пакета для apt | нет |
apt_ignore |
Игнорировать пакет для apt | нет |
apt_install_recommends |
Устанавливать рекомендованные зависимости для apt | нет |
apk |
Название пакета для apk | нет |
apk_ignore |
Игнорировать пакет для apk | нет |
yum |
Название пакета для yum | нет |
yum_ignore |
Игнорировать пакет для yum | нет |
dnf |
Название пакета для dnf | нет |
dnf_ignore |
Игнорировать пакет для dnf | нет |
brew |
Название пакета для brew | нет |
brew_ignore |
Игнорировать пакет для brew | нет |
zypper |
Название пакета для zypper | нет |
zypper_ignore |
Игнорировать пакет для zypper | нет |
pacman |
Название пакета для pacman | нет |
pacman_ignore |
Игнорировать пакет для pacman | нет |
portage |
Название пакета для portage | нет |
portage_ignore |
Игнорировать пакет для portage | нет |
opkg |
Название пакета для opkg | нет |
opkg_ignore |
Игнорировать пакет для opkg | нет |
По умолчанию используются package_state
и item.name
при управлении пакетами. Однако, если определены item.state
или более специфичное название пакета (например, item.apt
), то они будут использоваться вместо этого. Если вы хотите, чтобы пакет игнорировался для некоторых менеджеров пакетов, вы можете добавить ***_ignore
: yes.
Пример package_list
package_list:
- name: package
- name: package1
state: absent
- name: package2
apt: package2_apt_name
- name: package3
apt_ignore: yes
yum: package3_yum_name
pacman: package3_pacman_name
portage: package3_portage_name
Зависимости
Нет.
Пример плейбука
---
- hosts: servers
roles:
- { role: GROG.package,
become: yes,
package_list: [
{ name: htop,
brew: htop-osx },
{ name: tree }
]
}
Вклад
Любая помощь, изменения или идеи приветствуются!
Автор
От G. Roggemans
Лицензия
MIT
A role for installing packages on different operating systems.
ansible-galaxy install GROG/ansible-role-package