我确定这里有人可以解决我的问题。我正在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: user2user1@10.65.8.50's password: "ansible"[user1@hostname ~]$这意味着我必须在要创建用户的服务器的终端中创建哈希,然后将哈希复制并粘贴到剧本中。如果我有一台服务器,这不是什么大麻烦,但是如果我要对100台服务器运行剧本,那么我需要以root用户身份登录到100台服务器并创建100个哈希,然后在剧本中定义所有这些哈希,这不是很自动化!因此,需要的是能够从剧本执行python-crypt,grep创建的哈希并将其放入剧本的功能。您对如何执行此操作有任何想法吗?甚至在Ansible中也不是,我不希望你们为我写剧本。也许考虑如何在您选择的工具(例如PowerShell)中执行此操作。一旦了解了该过程,便可以将其翻译成剧本。
1 回答
HUH函数
TA贡献1836条经验 获得超4个赞
在FAP之类的变量中设置密码,然后将其添加到脚本中以创建用户:
- name: "Encrypt password for target system"
command: "python -c 'import crypt; print crypt.crypt(\"{{ FAP }}\")'"
register: EFAP
- name: "Add user USER1"
user: name="USER1" state="present" password="{{ EFAP.stdout }}"
我已经使用复杂的密码对此进行了测试,并且可以正常工作
- 1 回答
- 0 关注
- 754 浏览
添加回答
举报
0/150
提交
取消