首页 > 解决方案 > 如何在ansible中定义提供成为密码的脚本

问题描述

我已经成功设置了一个vault_password_file包含从 Bitwarden 读取密码的脚本。

我想对“成为密码”做同样的事情,但不知道在哪里以及如何实现。

ansible.cfg 是:

[defaults]
inventory=./inventory.yml
vault_password_file=./ansible-vault-pass.sh

[privilege_escalation]
become=True

Ansible-vault-pass 如下,虽然细节无关紧要,但这有效:

#!/bin/bash

_BW_ENTRY_ID="my-ansible-vault-pass"
_bw_session="$(bw unlock --raw)"
echo "$(bw get password ${_BW_ENTRY_ID} --session ${_bw_session} --raw)"

我有一个类似的脚本来查找并返回成为密码,但找不到如何将其挂钩到要使用的配置中,而不是提示用户。

我知道将其设置为group_vars/all/clear.yml,例如如下:

ansible_become_password: "{{ vault_enabled_ansible_become_password }}"

然后将密码存储在保险库中。这种方法的问题在于,保管库在可以在服务器队列上运行 ansible 的系统管理员之间共享。但我不希望任何这样的 syadmin 能够读取他们同事的 sudo 密码。因此使用 Bitwarden/script 的方法。

标签: ansibleansible-vault

解决方案


这类问题的问题在于有几个答案,而“正确”的答案取决于您的工作流程和对定制的容忍度。也就是说,这里有一些我知道的:


推荐阅读