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

时间:2017-05-16 14:53:59

标签: hash ansible ansible-vault

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

name:将用户添加到本地系统
  用户:
   名称:" {{item.username}}"
  密码:" {{item.password}}"
   uid:" {{item.uid}}"
   group:" {{item.group}}"
 with_items:" {{Ansible_Vault_SecretsFile}}"

这样我就可以在不同环境的不同秘密文件中指定用户的详细信息(用户名,密码,uid和组)。秘密文件中的密码是纯文本。由于它被写入/ etc / shadow,因此需要进行哈希处理。有没有办法在这个角色中自动散列密码变量?

编辑: 为了进一步说明,我知道秘密文件是加密的,但是在这种情况下,用户名和密码的内容在存储到/ etc / shadow文件之前被解密。

我的秘密文件如下:

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

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

角色遍历秘密文件,在这种情况下创建两个用户。在/ etc / shadow文件中,密码存储为MyPassword和Mypassword2,但为了登录这些明文密码需要进行哈希处理。我正在寻找一种自动执行此操作的方法。

3 个答案:

答案 0 :(得分:1)

以下是创建密码的documentation,这对您有所帮助!

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

  

mkpasswd --method = sha-512

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

  

pip install passlib

python -c "from passlib.hash import sha512_crypt; import getpass; print sha512_crypt.using(rounds=5000).hash(getpass.getpass())"

答案 1 :(得分:0)

如果使用ansible-vault创建/加密机密文件,则它不是纯文本。

答案 2 :(得分:-1)

gile是正确的当你在ansible上创建一个秘密文件时,默认的密码是AES。