如何定义在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" 一个取决于您的工作流程和对自定义的容忍度。也就是说,这里有一些我知道的:
- 使用动态清单脚本根据您希望的任何逻辑填充
ansible_become_pass
var
- 复制一个bitwarden lookup plugin into
lookup_plugins
然后设置ansible_become_pass: '{{ lookup("bitwarden", "whatever", field="password") }}'
- 使用您选择的机制复制 become plugin into
become_plugins
and modify it to return the pass from get_option("become_pass")
- 使用自定义
ansible-playbook-with-bitwarden
shell 脚本将在启动前填充 $ANSIBLE_BECOME_PASS
ansible-playbook
我已经成功设置了一个 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" 一个取决于您的工作流程和对自定义的容忍度。也就是说,这里有一些我知道的:
- 使用动态清单脚本根据您希望的任何逻辑填充
ansible_become_pass
var - 复制一个bitwarden lookup plugin into
lookup_plugins
然后设置ansible_become_pass: '{{ lookup("bitwarden", "whatever", field="password") }}'
- 使用您选择的机制复制 become plugin into
become_plugins
and modify it to return the pass fromget_option("become_pass")
- 使用自定义
ansible-playbook-with-bitwarden
shell 脚本将在启动前填充$ANSIBLE_BECOME_PASS
ansible-playbook