gotmax23.pass
Ansible 角色:pass
这是一个安装 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 |
许可证
作者
Maxwell G (@gotmax23)
Ansible role that installs password-store (pass), the standard Unix password manager.
ansible-galaxy install gotmax23.pass