簡體   English   中英

Ansible Tower (AWX) - 在劇本中使用安全變量?

[英]Ansible Tower (AWX) - using secure variables in a playbook?

大家好,我最近開始使用 Ansible(特別是 Ansible Tower)。 我在我的劇本中使用安全值時遇到了一個問題,更准確地說,我不明白如何正確使用它。

與 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工具,我可以用它來加密以后可以在劇本中使用的變量文件。 可悲的是,我見過的唯一例子(或者我可能只是沒有注意到)只包括從命令行運行劇本,這不是我所做的。

我的 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 中實現這一點,具體取決於您希望將這些秘密存儲在哪里。

  1. 在您的項目/GIT 存儲庫中創建保管庫
  • 使用“ansible-vault create”命令並選擇一個密碼
  • 以 yaml 格式保存保管庫中的憑據並將更改提交/推送到 git
  • 在您的劇本中,將 include_vars 添加到您的保管庫文件並提交/推送到 git
  • 在 Tower 創建憑證,選擇 type=Vault 並為您的保險庫添加密碼
  • 在您的 Tower 模板上添加您之前創建的憑據
  1. 使用自定義憑證類型(這根本不會將憑證保存在 git 中,它們只會存在於 Tower/AWX 上)
  • 創建一個新的自定義憑證類型,其注入器配置類型為“extra_vars”,以及您希望作為變量包含在劇本中的憑證。
  • 然后根據您在上一步中創建的新憑證類型創建憑證。
  • 現在將該憑據分配給您的模板,這些變量將僅在您的劇本運行中可用。

以下是有關如何創建自定義憑據類型的詳細信息

https://docs.ansible.com/ansible-tower/latest/html/userguide/credential_types.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM