我确定这里有人可以解决我的问题。我正在Ansible主机文件中定义的主机上创建用户。但是,当用户希望登录时,root用户需要定义用户密码。我需要自动创建用户密码。
要使用剧本创建用户密码,我们无法以明文形式指定密码,我们只能通过提供哈希值来做到这一点:
- name: Add Users + Assign to Group
user:
name: "{{ item }}"
password: $6$ul4TACYvHI.kmGUK$j32lU8fNbX.eW0DZOqnnDlP8i0...
要创建哈希,第一步是通过以root用户身份登录到目标服务器来定义密码,然后使用python-crypt创建哈希。运行命令后,终端将提供哈希值,并将其粘贴到剧本中。(在下面的示例中,密码为“ ansible”)
python -c 'import crypt; print crypt.crypt("ansible")'
当我在目标服务器上运行该剧本时,我可以以使用python-crypt定义的密码创建剧本的用户身份登录(在这种情况下,我以user2身份登录,密码为“ ansible”)
login as: user2
user1@10.65.8.50's password: "ansible"
[user1@hostname ~]$
这意味着我必须在要创建用户的服务器的终端中创建哈希,然后将哈希复制并粘贴到剧本中。如果我有一台服务器,这不是什么大麻烦,但是如果我要对100台服务器运行剧本,那么我需要以root用户身份登录到100台服务器并创建100个哈希,然后在剧本中定义所有这些哈希,这不是很自动化!
因此,需要的是能够从剧本执行python-crypt,grep创建的哈希并将其放入剧本的功能。您对如何执行此操作有任何想法吗?甚至在Ansible中也不是,我不希望你们为我写剧本。也许考虑如何在您选择的工具(例如PowerShell)中执行此操作。一旦了解了该过程,便可以将其翻译成剧本。
HUH函数