gpt4 book ai didi

hash - 未检测到 group_vars 中的 Ansible 保险库密码

转载 作者:行者123 更新时间:2023-12-04 12:46:16 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Ansible with "Alternative Directory Layout" and using vaults

(1 个回答)


4年前关闭。




我正在尝试使用 ansible-vault 来保护单个 Windows 登录密码。我不想将 hte 密码作为纯文本放置在我的 windows.yml 文件中(见下文),因此我尝试使用 ansible-vault保护/加密此密码。

我有这个目录结构:

myansiblehome
- windows_manage
- group_vars
- windows.yml
- vault
- hosts
- win_playbook.yml

我的问题是关于文件 vault .我试图按照 this 将 Windows 登录密码作为加密变量放在这里教程。变量名是 ansible_password我的想法是我应该在 vault 中有一个哈希值文件而不是文本中的实际密码。

我的 windows.yml文件如下所示(遵循指南 here ):
ansible_user: administrator
ansible_password: "{{ vault_ansible_password }}"
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore

现在,创建 vault文件,这是我的步骤:
cd windows_manage
ansible-vault create group_vars/vault

那么这里是我放入 vault的所有内容文件:
---
vault_ansible_password: mypassword

当我用 ansible-playbook -i ./hosts win_playbook.yml --ask-vault-pass 运行这个文件时,我收到此错误(问题 A):
The field 'password' has an invalid value, which includes an
undefined variable. The error was: 'vault_ansible_password' is
undefined\nexception type: <...>\nexception: 'vault_ansible_password' is
undefined.

因此,我尝试生成哈希而不是使用文本。我这样做了:
mkpasswd --method=SHA-512
# copy the resulting hash to the clipboard
ansible-vault create group_vars/vault

我用这个哈希替换了文本 mypassword。我在 vi 中粘贴了哈希值编辑器并保存了 vault文件。再次,我用 ansible-playbook -i ./hosts win_playbook.yml --ask-vault-pass 运行剧本.这次我得到了一个不同的错误(问题 B):
fatal: [...]: UNREACHABLE! => ..."ssl: the specified
credentials were rejected by the server", "unreachable": true}

为了克服这个,我必须做两件事:
  • 解决问题A.:在win_playbook.yml , 我需要添加 vars_files: group_vars\vault ,有点类似于 this StackOverflow 帖子。
  • 解决问题 B.:我必须替换 vault 中的哈希值使用文本中的实际密码(mypassword)。

  • 问题:
  • 关于 A:在我遇到的 ansible Vault 教程中,我没有看到为什么 vars_file: group_vars\vars 的特殊原因。应该出现在主剧本文件中(见下面的链接 1-4)。即任何地方都没有提到这一点。我认为 Ansible 会自动检测 group_vars 中的变量目录???需要这条线有什么原因吗?
  • https://serversforhackers.com/c/ansible-using-vault
  • https://www.digitalocean.com/community/tutorials/how-to-use-vault-to-protect-sensitive-ansible-data-on-ubuntu-16-04
  • 这些人使用 group_vars/vars (未加密的变量文件类似于我的 group_vars/vars )和 group_vars/vault (类似于我的 group_vars/vault 的加密变量文件)但是他们使用了一个角色,而我没有使用 Ansible 角色
  • https://knpuniversity.com/screencast/ansible/variable-vault
  • https://opensource.com/article/16/12/devops-security-ansible-vault
  • 关于 B:看起来其他用户(见 here 使用哈希作为他们的变量)。其实,even the Ansible docs suggest使用 mkpasswd生成密码。也许我误解了一些东西。我们应该不使用 mkpasswd --method=SHA-512散列密码,然后将散列作为变量值?是否不能使用散列作为 vault 中的 key:value 中的值?文件?
  • 最佳答案

    group_vars依赖于文件/目录名——它应该对应于特定的组名。

    在你的情况下 windows.yml应用于名为 windows 的组,但是 vault将应用于名为 vault 的组.

    要解决您的问题,请创建名为 windows 的目录并将您的文件放在那里(windows 目录下的每个文件都将按字母顺序应用于 windows 组中的主机):

    myansiblehome
    \ windows_manage
    \ group_vars
    \ windows
    \ windows.yml
    - vault

    关于hash - 未检测到 group_vars 中的 Ansible 保险库密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46980859/

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