【问题标题】:Ansible: How to pass multiple password files to playbookAnsible:如何将多个密码文件传递给剧本
【发布时间】:2021-01-14 00:04:37
【问题描述】:

当我运行 Ansible playbook 时,如何在命令行中传递多个密码文件?

我想运行这个:

ansible-playbook --vault-password-file /path/to/vault-password-file my_playbook.yml

但我想传递多个密码文件,因为我在剧本中使用了多个变量,这些变量使用存储在不同密码文件中的不同密码。

我该怎么做?

(我使用的是 Ansible 2.9.16,但如果有帮助可以升级到 2.10.x,我不受任何特定版本的约束)

【问题讨论】:

  • 能否请您提及您的 Ansible 版本?
  • @ShubhamVaishnav 我没有绑定任何特定版本。如果有只适用于最新版本的解决方案,我会升级到那个。
  • 好的,那就看看我的回答吧。

标签: ansible


【解决方案1】:

您可以利用 vault-ids 概念(在 Ansible v2.4 中引入)来解决您的问题。 下面的示例命令,

ansible-playbook --vault-id dev@dev-password --vault-id prod@prompt site.yml

dev -> 是保管库 ID

dev-password -> 指向要使用的密码

prod -> 另一个保管库 ID

prompt -> 提示输入密码

完整的工作流程和设置的 Ansible Docs:https://docs.ansible.com/ansible/2.6/user_guide/vault.html#vault-ids-and-multiple-vault-passwords

使用现有密码文件设置保险柜 ID

  1. Ansible 配置文件设置

vault_identity_list = vaultid1@~/path_to_pass1_file/.pass1 , vaultid2@~/path_to_pass2_file/.pass2

  1. 使用相应的 vaultid 加密文件

ansible-vault encrypt --encrypt-vault-id vaultid1 file_to_be_encrypted_1 ansible-vault encrypt --encrypt-vault-id vaultid2 file_to_be_encrypted_2

  1. 运行您的 playbook,它会自动从 ansible.cfg 中选择配置并解密内容。

【讨论】:

  • 感谢您的回答!但问题是:我没有任何保管库 ID,只有两个密码文件,每个文件都包含一个密码。在这种情况下,我应该提供什么作为保管库 ID?
  • @Alex,更新了我的答案并为您的查询添加了分步过程。
猜你喜欢
  • 2022-06-10
  • 1970-01-01
  • 2018-09-21
  • 2022-06-15
  • 2017-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多