ansible - Ansible:如何将多个密码文件传递给剧本
问题描述
当我运行 Ansible playbook 时,如何在命令行上传递多个密码文件?
我想运行这个:
ansible-playbook --vault-password-file /path/to/vault-password-file my_playbook.yml
但我想传递多个密码文件,因为我在剧本中使用了多个变量,这些变量使用存储在不同密码文件中的不同密码。
我怎么做?
(我使用的是 Ansible 2.9.16,但如果有帮助可以升级到 2.10.x,我不受任何特定版本的约束)
解决方案
您可以利用 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 文档:https ://docs.ansible.com/ansible/2.6/user_guide/vault.html#vault-ids-and-multiple-vault-passwords
使用现有密码文件设置保险柜 ID
- Ansible 配置文件设置
vault_identity_list = vaultid1@~/path_to_pass1_file/.pass1 , vaultid2@~/path_to_pass2_file/.pass2
- 使用相应的 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
- 运行你的剧本,它会自动从中选择配置
ansible.cfg
并解密内容。
推荐阅读
- android - Android ListView OnItemClickListener 无法正常工作
- html - 在主屏幕上的 HTML 中获取按钮以路由到标有“关于”的页面
- django - Pyzipcode 城市查找无法正常工作
- mysql - 我正在尝试在 Debian 10 上安装 MySql 并不断收到错误消息。我究竟做错了什么?
- java - Palindrome String VarArgs - Java(没有数组只是 VarArgs)
- jekyll - 如何在 Github Pages 上修改 Jekyll 主题的 CSS / HTML?
- python - 将文本日期转换为年+月进行排序(即 1/19/2019 到 201901)
- tensorflow - LSTM(Keras)中样本步长和时间步长之间的差异
- php - 页面无法通过 GET 或 POST 请求访问我的 cookie
- python - 在python3中计算文本文件的单词