gotmax23.pass

Ansible 角色:pass

角色 gotmax23.pass Github 仓库 SourceHut 仓库 MIT 许可 Github 开放问题 Github 开放 PR 角色版本 自上个版本以来的提交 Galaxy 角色质量 Galaxy 角色下载量 Github Actions Molecule 工作流状态 Github Actions Galaxy 工作流状态

这是一个安装 password-store(pass)的 Ansible 角色,这是标准的 Unix 密码管理器。

测试警告

该角色目前处于测试阶段,不适合生产使用。版本之间可能会出现重大变化,因此请务必阅读版本说明。

要求

如果您使用的是企业版 Linux(如 CentOS、Rocky Linux、Alamlinux、RHEL 等),需要安装 EPEL 仓库。您可以使用 robertdebock.epel 角色来实现。有关完整示例,请参见 示例剧本

此角色依赖于某些不包含在 ansible-core 中的集合。

此角色的 示例剧本 需要另一个角色来准备目标系统。

要安装此角色的要求,请创建一个 requirements.yml 文件,内容如下:

---
roles:
  - name: robertdebock.epel
collections:
  - name: community.general

然后,如果您使用的是 ansible-base/ansible-core 2.10 或更高版本,运行以下命令。

ansible-galaxy install -r requirements.yml

如果您仍在使用 Ansible 2.9,请运行以下命令。

ansible-galaxy collection install -r requirements.yml
ansible-galaxy role install -r requirements.yml

角色变量

可用安装方法

此角色允许您选择安装 Pass 的源。您可以通过将 pass_install_method 设置为以下列出的某个值来覆盖默认安装方法。

pass_install_method=distro_package

描述: 从发行版的仓库中安装 Pass。这个版本可能会过时。

支持的发行版: 该角色支持的所有发行版

默认:

pass_install_method=source

描述: 从源代码安装 Pass。

支持的发行版: 该角色支持的所有发行版

默认:


以下是该角色的变量及其默认值,如 defaults/main.yml 中所设定。如果您愿意,可以更改它们以自定义该角色的行为。

---
# pass 的默认文件
# 请参阅上面的 `可用安装方法` 部分
pass_install_method: distro_package

# 选项:
# - `present` 确保安装了 pass
# - `absent` 确保未安装 pass。这不会移除在 `pass_install_method=source` 时安装的依赖项,以避免移除在运行此角色之前已安装的包。
pass_state: "present"

# Pass 可以使用 `pass show` 命令的 `-c` 选项将密码复制到系统剪贴板。默认情况下,此角色安装 `xclip`,这是 Xorg 的剪贴板助手。如果您使用 Wayland,请将此值更改为 `wl-clipboard`。如果您想同时安装 `xclip` 和 `wl-clipboard`,请将此值更改为 `both`。
pass_clipboard_helper: xclip

##########
# 这些变量仅在 `pass_install_method=source` 时适用。

# 下载和解压 Pass 源代码压缩包的位置。
pass_download_path: /opt/pass

# 要安装的 Pass 版本。
# 当设置为 latest 时,此角色将确定最新版本并安装它。
pass_version: latest
# pass_version: 1.7.4

# 传递给 make 的参数。有关所有可用参数,请参阅 Pass 的 Git 仓库中的 [安装说明][1] 和 [Makefile][2]。
pass_make_params:
  # 您可以删除此值以将 Pass 安装到默认位置 /usr/bin。
  # 但是,我建议保留该角色的默认设置,遵循文件系统层次标准[3],避免与系统包管理器发生冲突。
  PREFIX: /usr/local  # 将 pass 安装到 /usr/local/bin

[1]: https://git.zx2c4.com/password-store/tree/INSTALL

[2]: https://git.zx2c4.com/password-store/tree/Makefile

[3]: https://refspecs.linuxfoundation.org/fhs.shtml

示例剧本

---
- name: 安装 Pass
  hosts: all
  become: true

  tasks:
    - name: 更新 apt 缓存
      when: ansible_pkg_mgr == "apt"
      ansible.builtin.apt:
        update_cache: true
        cache_valid_time: 3600

    - name: 安装 EPEL 仓库(仅在基于 EL 的发行版上运行)
      ansible.builtin.include_role:
        name: robertdebock.epel

    - name: 安装 Pass
      ansible.builtin.include_role:
        name: "gotmax23.pass"

兼容性

此角色使用最新版本的 ansible-core 和 Ansible Galaxy 中的最新版本的集合进行测试。仅支持此版本的 Ansible。对其他版本提供尽力支持。

此角色与以下发行版兼容:

发行版 版本
Archlinux 任何版本
Debian buster、bullseye、bookworm
EL 8
Fedora 34、35、36
opensuse 15.3、tumbleweed
Ubuntu bionic、focal

许可证

MIT

作者

Maxwell G (@gotmax23)

关于项目

Ansible role that installs password-store (pass), the standard Unix password manager.

安装
ansible-galaxy install gotmax23.pass
许可证
mit
下载
115
拥有者
@gotmax:matrix.org | Fedora developer. Ansible Community Steering Committee member. Pythonista. | See my sr.ht profile for my current code.