gpt4 book ai didi

Ansible Tower (AWX) - 在剧本中使用安全变量?

转载 作者:行者123 更新时间:2023-12-04 13:12:21 26 4
gpt4 key购买 nike

问候大家,
我最近开始搞乱 Ansible(特别是 Ansible Tower)。
我在我的剧本中使用安全值时遇到了一个问题,更准确地说,我不明白如何正确使用它。
与 Chef-Infra 相比,您可以使用 data_bags以便存储您的安全凭据。
你创建一个数据包:

knife data bag create testDataBag 
您将为数据包项目创建一个 json 文件:
{
"id": "preproduction",
"user": "user1",
"password": "this-is-a-password"
}
将其上传到 Chef 服务器,同时使用 secret 文件(存在于目标服务器)对其进行加密:
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我可以用它来加密以后可以在剧本中使用的变量文件的工具。
可悲的是,我见过的唯一例子(或者我可能只是没有注意到)只包括从命令行运行剧本,这不是我所做的。
我的 GIT 存储库中有一个剧本,它连接到我的 Ansible Tower 中的一个项目。
我需要做什么才能达到可以使用包含密码的变量的程度?
  • 加密是一样的吗?通过使用 ansible-vault ?
  • 我在哪里存储加密文件? (特别是在 Ansible Tower 中)
  • 如何存储保管库密码(用于解密保管库 ID 的密码)?
  • 如何在我的剧本中访问它们?

  • 我查看了这些链接,但找不到任何有趣的内容:
    https://docs.ansible.com/ansible/latest/user_guide/vault.html
    https://docs.ansible.com/ansible/latest/user_guide/playbooks_vault.html
    https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#variables-and-vaults
    在 Ansible Tower 文档中,没有解释如何以及在哪里存储您的 vault-id。
    如果需要更多信息,请告诉我,我会更新我的帖子。
    谢谢大家!

    最佳答案

    据我所知,您有两种选择可以在 AWX/Tower 中实现这一点,具体取决于您希望将这些 secret 存储在哪里。

  • 在您的项目/GIT 存储库中创建保管库
  • 使用“ansible-vault create”命令并选择密码
  • 以 yaml 格式保存保管库中的凭据并将更改提交/推送到 git
  • 在您的剧本中,将 include_vars 添加到您的保管库文件并提交/推送到 git
  • 在 Tower 创建凭证,选择 type=Vault 并为您的保险库添加密码
  • 在您的 Tower 模板上添加您之前创建的凭证
  • 使用自定义凭证类型(这根本不会将凭证保存在 git 中,它们只会存在于 Tower/AWX 上)
  • 创建一个新的自定义凭证类型,其注入(inject)器配置类型为“extra_vars”,以及您希望作为变量包含在剧本中的凭证。
  • 然后根据您在上一步中创建的新凭证类型创建凭证。
  • 现在将该凭据分配给您的模板,这些变量将仅在您的剧本运行中可用。

  • 以下是有关如何创建自定义凭据类型的详细信息
    https://docs.ansible.com/ansible-tower/latest/html/userguide/credential_types.html

    关于Ansible Tower (AWX) - 在剧本中使用安全变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63766119/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com