sgaunet.gh_role_installer

Ansible 角色: gh_role_installer

GitHub 发布

一个用于从 GitHub 安装发布版本的 Ansible 角色。它被创建用来安装来自 GitHub 发布的二进制文件。它设计用于仅设置简单的二进制文件(使用 Go 或 Rust 编写),而不用于安装复杂的软件。

你可以用它来设置诸如:

  • bat
  • d2
  • gini
  • goreleaser
  • helm
  • k9s
  • pgweb
  • vhs
  • ...

要求

无。

角色变量

可用的变量如下,仅 gh_role_installer_tmp_directory 和 gh_role_installer_binary_path 默认设置:

gh_role_installer_version: "latest"   # latest 是一个特殊值,用于获取最新的发布版本(将使用 GitHub API 来获取最新发布)
gh_role_installer_os: "linux"         # 操作系统名称,用于下载发布版本
gh_role_installer_arch: "amd64"       # 架构,用于下载发布版本
gh_role_installer_repository: "sgaunet/jwt-cli"
# 发布链接,用于下载发布版本,注意 version_to_install 是一个特殊值,将被替换为要安装的版本
gh_role_installer_release: "https://github.com/{{ gh_role_installer_repository }}/releases/download/v{{ version_to_install }}/jwt-cli_{{ version_to_install }}_{{ gh_role_installer_os }}_{{ gh_role_installer_arch }}"
gh_role_installer_release_is_archive: false  # 如果为 true,说明发布的是压缩包,它将被下载并解压
gh_role_installer_binary_name: "jwt-cli"     # 要安装的二进制文件名称
gh_role_installer_cmd_to_get_version: "jwt-cli version"  # 获取已安装二进制文件版本的命令
gh_role_installer_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}" # 下载发布的临时目录
gh_role_installer_binary_path: "/usr/local/bin/{{ gh_role_installer_binary_name }}"  # 二进制文件将被安装的目录

依赖

无。

示例 playbook

- hosts: all
  roles:
    - role: sgaunet.gh_role_installer
      vars:
        gh_role_installer_version: "latest"
        gh_role_installer_os: "unknown-linux-musl"
        gh_role_installer_arch: "x86_64"
        gh_role_installer_repository: "zellij-org/zellij"
        gh_role_installer_release: "https://github.com/{{ gh_role_installer_repository }}/releases/download/v{{ version_to_install }}/zellij-{{ gh_role_installer_arch }}-{{ gh_role_installer_os }}.tar.gz"
        gh_role_installer_release_is_archive: true
        gh_role_installer_binary_name: "zellij"
        gh_role_installer_cmd_to_get_version: 'zellij --version | sed "s#zellij ##g"'
        # gh_role_installer_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}"
        # gh_role_installer_binary_path: "/usr/local/bin/{{ gh_role_installer_binary_name }}"

该角色还包含安装其他工具的变量。请查看文档中的可用工具列表。

许可证

MIT

安装
ansible-galaxy install sgaunet.gh_role_installer
许可证
mit
下载
394
拥有者