大家好, 我最近开始尝试使用Ansible(特别是Ansible Tower)。 在我的playbook中,我遇到了使用安全值的问题,更准确地说,我不知道如何正确使用它。
与Chef-Infra相比,你可以使用data_bags
来存储你的安全凭据。
你可以创建一个数据包:
knife data bag create testDataBag
你需要为数据包项创建一个 JSON 文件:
{
"id": "preproduction",
"user": "user1",
"password": "this-is-a-password"
}
将其上传到Chef服务器并使用密钥文件(存在于目标服务器上)进行加密:
knife data bag from file testDataBag .\testDataBag\preproduction.json --secret-file .\secret-file
然后你可以在你的菜谱中使用它:
userinfo = data_bag_item('testDataBag', preproduction)
userinfo['user'] # "user1"
userinfo['password'] # "this-is-a-password"
一个示例用例 - 配置 Linux 用户的密码。
userinfo = data_bag_item('testDataBag', preproduction)
user "#{userinfo['user']}" do
comment 'A random user'
home "/home/#{userinfo['user']}"
shell '/bin/bash'
password "userinfo['password']"
end
我知道这是很多信息,但我想展示我如何使用安全凭据。 回到Ansible,我了解到有一个
ansible-vault
工具,可以用来加密变量文件,然后在playbook中使用。
不幸的是,我看到的例子(或者可能是我没有注意到)只包括从命令行运行playbook,这不是我要做的事情。我有一个playbook在我的GIT存储库中,它连接到我的Ansible Tower项目。 为了达到可以使用包含密码的变量的目的,我需要做什么?
- 加密方式一样吗?使用
ansible-vault
? - 我应该把加密文件存储在哪里?(特别是在Ansible Tower中)
- 如何存储vault密码(用于解密vault-id的密码)?
- 如何在我的playbook中访问它们?
https://docs.ansible.com/ansible/latest/user_guide/vault.html
https://docs.ansible.com/ansible/latest/user_guide/playbooks_vault.html
在Ansible Tower文档中没有说明如何存储和存储vault-id。如果需要更多信息,请告诉我,我会更新我的帖子。
谢谢大家!