Hash Ansible:如何在Ansible_vault文件中创建密码集的pw哈希?

Hash Ansible:如何在Ansible_vault文件中创建密码集的pw哈希?,hash,ansible,ansible-vault,Hash,Ansible,Ansible Vault,我想在初始化实例时在我的操作系统上使用Ansible te create user。为此,我制定了一个剧本,其中我定义了一个角色。在这个职位上,我有以下几点:   名称:将用户添加到本地系统   用户:    名称:{{item.username}    密码:{{item.password}}    uid:{{item.uid}    组:{{item.group}  带项目:{{Ansible\u Vault\u SecretsFile} 这样,我可以在不同环境的不同机密文件中指定用户用

我想在初始化实例时在我的操作系统上使用Ansible te create user。为此,我制定了一个剧本,其中我定义了一个角色。在这个职位上,我有以下几点:

  名称:将用户添加到本地系统   用户:    名称:{{item.username}    密码:{{item.password}}    uid:{{item.uid}    组:{{item.group}  带项目:{{Ansible\u Vault\u SecretsFile}

这样,我可以在不同环境的不同机密文件中指定用户用户名、密码、uid和组的详细信息。机密文件中的密码为纯文本。因为它被写入/etc/shadow,所以需要对它进行散列。是否有一种方法可以自动将此角色中的密码变量散列

编辑: 为了进一步澄清,我知道secrets文件是加密的,但是当本例中的内容用户名和密码在存储到/etc/shadow文件之前被解密时

我的机密文件如下所示:

Ansible_Vault_SecretsFile:  用户名:user1  密码:MyPassword  uid:100  组:用户

 用户名:user2  密码:MyPassword2  uid:101  组:用户


角色迭代机密文件,在本例中创建两个用户。在/etc/shadow文件中,密码存储为MyPassword和Mypassword2,但为了登录,需要对这些明文密码进行散列。我正在寻找一种自动执行此操作的方法。

如果您使用非纯文本创建/加密机密文件。

以下是创建密码的方法,这将对您有所帮助

一,。在大多数Linux系统上可用的mkpasswd实用程序是一个很好的选择

mkpasswd-方法=sha-512

二,。如果您的系统上未安装此实用程序(例如,您正在使用OS X),则仍然可以使用Python轻松生成这些密码。首先,确保安装了Passlib密码哈希库

pip安装passlib


编辑了我的主要帖子,我知道机密文件是加密的,但是当你以这种方式使用它们时,内容会被解密。谢谢你的回答,我正在寻找一种方法将其整合到我的角色中。因此,我的角色创建了几个用户,并使用您的方法之一对从机密文件恢复的密码进行哈希处理。
python -c "from passlib.hash import sha512_crypt; import getpass; print sha512_crypt.using(rounds=5000).hash(getpass.getpass())"