gotmax23.github_cli
Ansible角色:github_cli
Ansible角色,用于安装Github CLI (gh)。
Beta警告
此角色目前处于测试阶段,不适用于生产环境。发布之间可能会出现重大变更,因此请务必阅读发布说明。
需求
此角色依赖于某些集合,这些集合不包含在ansible-core中。
要安装此角色所需的依赖项,请创建一个requirements.yml
文件,内容如下:
---
collections:
- community.general
然后,如果您使用的是ansible-base/ansible-core 2.10或更高版本,请运行以下命令。
ansible-galaxy install -r requirements.yml
如果您仍在使用Ansible 2.9,请运行以下命令。
ansible-galaxy collection install -r requirements.yml
角色变量
可用安装方法
此角色允许您选择从哪个来源安装Github CLI。您可以通过设置github_cli_install_method
为以下值之一来覆盖默认安装方法。
github_cli_install_method=repo
描述: 从上游的Apt和RPM仓库安装Github CLI。
支持的发行版: apt仓库支持所有Debian衍生版。RPM仓库支持的RPM发行版包括Fedora、企业Linux(CentOS、Almalinux、Rocky Linux、RHEL等)、OpenSUSE Leap和OpenSUSE Tumbleweed。
默认值: 是(对于所有发行版,除非Archlinux不支持此选项。)
github_cli_install_method=distro_package
描述: 如果可用,则从分发版的仓库安装Github CLI。
支持的发行版: Archlinux、OpenSUSE Tumbleweed和Fedora
默认值: 仅适用于Archlinux,在这种情况下不支持github_cli_install_method=repo
。
以下是此角色的变量及其默认值,它们在defaults/main.yml
中设置。如果需要,您可以更改它们以自定义此角色的行为。
---
# github_cli的默认文件
# 选项:
# - `present`确保Github CLI已安装
# - `absent`确保Github CLI未安装。
# 如果您想切换安装方法,您需要先使用`state=absent`的旧设置运行一次这个角色,然后再使用`state=present`的新设置运行一次。
github_cli_state: present
# 默认情况下,`github_cli_install_method`根据您的发行版动态分配。
_github_cli_install_method:
Archlinux: distro_package # Archlinux的默认值
default: repo # 其他所有发行版的默认值
# 如上所述,您可以覆盖此变量。
# 只需确保您选择的选项支持您的发行版即可。
github_cli_install_method: "{{ _github_cli_install_method[ansible_distribution] | default(_github_cli_install_method['default']) }}"
# 是否在导入RPM仓库签名密钥之前检查其指纹。
# 注意,此选项仅适用于RPM仓库,而不适用于apt仓库。
github_cli_check_rpm_key_fingerprint: true
# 有关更多信息,请参见[此处][1]。
# 此角色的默认值基于Github的推荐。
github_cli_apt_repo_codename: stable
# 在Yum/Dnf上:将`enablerepo`传递到`package`模块。
github_cli_enablerepo: omit
[1]: https://github.com/cli/cli/blob/trunk/docs/install_linux.md#debian-ubuntu-linux-apt
示例剧本
---
- name: 安装Github CLI
hosts: all
become: true
tasks:
- name: 更新apt缓存
when: ansible_pkg_mgr == "apt"
ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
- name: 安装Github CLI
ansible.builtin.include_role:
name: "gotmax23.github_cli"
兼容性
此角色在最新版本的ansible-core和来自Ansible Galaxy的最新版本集合上进行了测试。这是此角色正式支持的唯一版本。对于其他版本,提供最佳努力支持。
此角色与以下发行版兼容:
发行版 | 版本 |
---|---|
Archlinux | 任意 |
Debian | buster, bullseye, bookworm |
EL | 8 |
Fedora | 34, 35, 36 |
opensuse | 15.3, tumbleweed |
Ubuntu | bionic, focal |
许可证
作者
Maxwell G (@gotmax23)
ansible-galaxy install gotmax23.github_cli