为了账号安全,请及时绑定邮箱和手机立即绑定

从Ansible Playbook创建用户密码

从Ansible Playbook创建用户密码

ABOUTYOU 2021-04-13 17:19:52
我确定这里有人可以解决我的问题。我正在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 }}"

我已经使用复杂的密码对此进行了测试,并且可以正常工作


查看完整回答
反对 回复 2021-04-16
  • 1 回答
  • 0 关注
  • 744 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信