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
Лицензия
gpl-3.0
Загрузки
1563
Владелец