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

时间:2015-11-28 15:01:16

标签: ansible ansible-playbook

我正在尝试创建将在其中创建用户列表的剧本。

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

1 个答案:

答案 0 :(得分:12)

password lookup可以为您生成密码,并将生成的密码放在控制计算机上(即播放手册正在运行的位置)。创建用户并设置其密码的示例任务可能如下所示:

- 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

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

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