aur
Помощник AUR для Ansible
Модуль Ansible для использования некоторых помощников Arch User Repository (AUR), а также makepkg.
Поддерживаются следующие помощники, которые автоматически выбираются, если они присутствуют, в порядке, указанном ниже:
makepkg будет использоваться, если не найден помощник или если он явно указан:
Опции
Параметр | Выборы/По умолчанию | Комментарии |
---|---|---|
name | Название или список названий пакетов для установки или обновления. | |
state | present, latest | Желаемое состояние пакета, 'present' пропускает операции, если пакет уже установлен. |
upgrade | yes, no | Обновлять ли всю систему. |
use | auto, yay, paru, pacaur, trizen, pikaur, aurman, makepkg | Инструмент для использования, 'auto' использует первый известный помощник и makepkg в качестве резервного варианта. |
extra_args | null | Список дополнительных аргументов, которые передаются напрямую инструменту. Не может использоваться в режиме 'auto'. |
aur_only | yes, no | Ограничить действие помощника только AUR. |
local_pkgbuild | Локальная директория с PKGBUILD, null | Сначала валиден только с makepkg или pikaur. Не загружать пакет из AUR. Строить пакет, используя локальный PKGBUILD и другие файлы сборки. |
skip_pgp_check | yes, no | Сначала валиден только с makepkg. Пропустить проверку PGP-подписей исходного файла, полезно при установке пакетов без корректной настройки GnuPG. |
ignore_arch | yes, no | Сначала валиден только с makepkg. Игнорировать отсутствующее или неполное поле arch, полезно, когда PKGBUILD не содержит поле arch=('вашарх'). |
Примечание
- Необходимы name или upgrade, оба параметра не могут использоваться одновременно.
- В режиме use=auto makepkg используется в качестве резервного варианта, если не найден известный помощник.
Установка
Пакет AUR
Пакет ansible-aur-git доступен в AUR.
Примечание: Модуль устанавливается в /usr/share/ansible/plugins/modules
, который является одним из стандартных путей библиотеки модулей.
Ручная установка
Просто клонируйте репозиторий ansible-aur в вашу пользовательскую директорию модулей:
git clone https://github.com/luizgavalda/ansible-aur.git ~/.ansible/plugins/modules/aur
Ansible Galaxy
ansible-aur доступен в Galaxy, который является хабом для обмена контентом Ansible. Чтобы его скачать, используйте:
ansible-galaxy install luizgavalda.aur
Примечание: Если этот модуль установлен из Ansible Galaxy, вам нужно будет явно указать его в вашем playbook:
# playbook.yml
- hosts: localhost
roles:
- luizgavalda.aur
tasks:
- aur: name=package_name
или в вашей роли:
# meta/main.yml
dependencies:
- luizgavalda.aur
# tasks/main.yml
- aur: name=package_name
Использование
Примечания
- Область этого модуля - установка и обновление из AUR; для удаления пакетов или обновлений из репозиториев рекомендуется использовать официальный модуль pacman.
- Параметр --needed помощника используется систематически, это означает, что если пакет актуален, он не пересобирается и не переустанавливается.
Создание пользователя "aur_builder"
Хотя Ansible предполагает SSH как root, makepkg или помощники AUR не позволяют выполнять операции от имени root, они завершаются с ошибкой "вы не можете выполнять эту операцию как root". Поэтому рекомендуется создать пользователя, который не является root, но не требует пароля для pacman в sudoers, давайте назовем его aur_builder.
Этот пользователь может быть создан в задаче Ansible с помощью следующих действий:
- user:
name: aur_builder
create_home: no
group: wheel
- lineinfile:
path: /etc/sudoers.d/11-install-aur_builder
line: 'aur_builder ALL=(ALL) NOPASSWD: /usr/bin/pacman'
create: yes
validate: 'visudo -cf %s'
Примеры
Используйте его в задаче, как в следующих примерах:
# Установить trizen с помощью makepkg, пропустите, если он уже установлен
- aur: name=trizen use=makepkg state=present
become: yes
become_user: aur_builder
# Установить package_name с использованием первого известного помощника
- aur: name=package_name
become: yes
become_user: aur_builder
# Установить package_name_1 и package_name_2 с использованием yay
- aur:
use: yay
name:
- package_name_1
- package_name_2
# Обновить систему с использованием yay, действовать только на пакеты AUR.
# Примечание: Разрешение зависимостей по-прежнему будет включать пакеты из репозиториев.
- aur: upgrade=yes use=yay aur_only=yes
# Установить gnome-shell-extension-caffeine-git с использованием pikaur и локального PKGBUILD.
# Пропустить, если он уже установлен
- aur:
name: gnome-shell-extension-caffeine-git
use: pikaur
local_pkgbuild: {{ role_path }}/files/gnome-shell-extension-caffeine-git
state: present
become: yes
become_user: aur_builder
Ansible module to use some Arch User Repository (AUR) helpers as well as makepkg.
ansible-galaxy install luizgavalda/aur