如何定义在ansible中提供成为密码的脚本

How to define a script that provides the become password in ansible

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

我想对 "become password" 做同样的事情,但不知道在哪里以及如何做到这一点。

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)"

我有一个类似的脚本可以查找 return 成为密码,但找不到如何将其挂接到要使用的配置而不是提示用户。

我知道 group_vars/all/clear.yml 中的设置,例如如下:

ansible_become_password: "{{ vault_enabled_ansible_become_password }}"

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

的方法

这类问题的问题在于有多个答案,"right" 一个取决于您的工作流程和对自定义的容忍度。也就是说,这里有一些我知道的: