github_release

Ansible Роль: GitHub Release

Универсальная роль для установки бинарного приложения, выпущенного на GitHub в операционной системе Linux на архитектуре x86_64.

Требования

Роль нацелена на системы, основанные на Debian и RHEL, построенные на архитектуре x86_64.

Роль предназначена для выполнения на удаленной машине, поэтому необходим выход в интернет.

Эта роль достаточно универсальна, что означает, что нужно осторожно выбирать пакеты для установки.

Важно: Всегда проверяйте пакеты, которые вы собираетесь установить, так как нет общего способа проверки контрольной суммы загруженного файла.

Переменные Роли

Обязательные:

ghr_org_name: # Название действительной организации на GitHub
ghr_app_name: # Название действительного репозитория на GitHub, принадлежащего организации

По умолчанию:

ghr_app_version: "latest" # Действующая версия из: https://github.com/{{ ghr_org_name }}/{{ ghr_app_name }}/releases/

ghr_app_binary_dest: "/opt/{{ ghr_app_name }}" # Каталог, куда будет помещен бинарник `ghr_app_name`

ghr_app_cleanup_after: false # Если установлено в true, все загруженные файлы будут удалены

ghr_app_configure_system_path: true # Нужно ли добавлять каталог `ghr_app_binary_dest` в системный `PATH`
ghr_app_system_path_prepend: false # Нужно ли добавлять или устанавливать `ghr_app_binary_dest` в начале `PATH`, ЕСЛИ (ghr_app_configure_system_path равно True).

ghr_app_tmp_dir: # Временная папка для хранения загруженного архива

ghr_app_releases_url: # URL релизов на GitHub.
ghr_app_archive: # Название архива.

Зависимости

Нет

Пример Playbook

Множественное выполнение роли приведет к проблемам с объединением переменных.

Рекомендуемое использование — запускать одну роль на каждом хосте.

    - hosts: localhost
      roles:
        - role: nioniosfr.github_release
          vars:
            ghr_org_name: "digitalocean"
            ghr_app_name: "doctl"
            ghr_app_version: "1.18.0"
            ghr_app_tmp_dir: "/mnt/nfs_share/downloads" # Хранить загруженный архив в более постоянном пути, чем '/tmp'

    - hosts: localhost
      roles:
        - role: nioniosfr.github_release
          vars:
            ghr_org_name: "stedolan"
            ghr_app_name: "jq"
            ghr_app_version: "1.6"
            ghr_app_releases_endpoint: "{{ ghr_app_name }}-{{ ghr_app_version }}"
            ghr_app_archive: "{{ ghr_app_name }}-linux64"
            ghr_app_is_binary: true

    - hosts: localhost
      roles:
        - role: nioniosfr.github_release
          vars:
            ghr_org_name: "digitalocean"
            ghr_app_name: "doctl"
            ghr_app_version: "1.18.0"
            ghr_app_binary_dest: "/usr/local/bin" # Устанавливается в общем пользовательском пути
            ghr_app_configure_system_path: false # Не изменять системный путь для пользователей
            ghr_app_tmp_dir: "/mnt/nfs_share/downloads" # Изменить папку, используемую для загрузок
            ghr_app_cleanup_after: true # Удалить как загруженный файл, так и системный profile.d для `app`, если он уже был создан при предыдущем запуске

Лицензия

MIT

Информация об авторе

NioniosFr

О проекте

A generic role to install a binary application released on GitHub in a Linux x86_64 based distro.

Установить
ansible-galaxy install NioniosFr/ansible-role-github-release
Лицензия
mit
Загрузки
177
Владелец
Principal Engineer