Ansible为用户自动生成随机密码

Pab*_*blo 10 ansible ansible-playbook

我正在尝试创建将在其中创建用户列表的playbook.

但是,我还想为每个用户生成随机密码.生成密码后,我希望在playbook文件旁边有一个文本文件,其中包含用户名:new_generated_pa​​ssword键值.是否可以在不开发新模块的情况下完成此操作?

yda*_*coR 12

password查询可以为您生成密码,并把生成的密码控制机(即剧本运行的位置)上.创建用户并设置其密码的示例任务可能如下所示:

- name: Create users with auto generated password
  user:
    name: "{{ item.name }}"
    password: "{{ lookup('password', 'credentials/' + item.name + '/password.txt encrypt=md5_crypt') }}"
  with_items: users
Run Code Online (Sandbox Code Playgroud)

然后,这将创建一个~/credentials/$username/password.txt在控制机器上命名的文本文件.如果您要重新运行Ansible游戏,那么Ansible会将该文件路径识别为密码,并确保将用户密码设置为相同的值 - 使其成为幂等的.

这并不能让你得到你想要的东西,而是获得你需要的所有信息到Ansible控制主机,这样你就可以进一步操作它来获得你想要的最终输出.

  • `password>中的`<path>`{{lookup('password',<path>)}}"`实际上表示localhost(主服务器)上的文件位置,而不是远程节点? (4认同)
  • 是的,路径表示运行playbook的机器上的路径,而不是远程主机... (2认同)