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

无法使用 ansible 用户模块为用户分配密码

无法使用 ansible 用户模块为用户分配密码

慕尼黑8549860 2022-05-24 18:13:05
- name: Add new SFTP user (user provided by prompt)'  hosts: '{{ target }}'  vars:    pwd_alias: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"    user_to_add: "{{ newuser }}"  tasks:    - set_fact:        my_pass: "{{ pwd_alias | password_hash('sha512') }}"    - name: Create user      user:        name: "{{ user_to_add }}"        password: "{{ my_pass }}"        shell: /bin/bash        create_home: yes        home: "/home/sftp/{{ user_to_add }}"        group: cgred    - debug:        msg: "{{ pwd_alias }},{{ my_pass }}"当我运行它时,它会做它应该做的事情。它创建我指定的用户和主目录。它还会打印出密码和哈希值,但无论我做什么,我都无法记录对该用户的更改。任何有关如何正确获取分配给该用户的密码的建议将不胜感激。
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

问题是pwd_alias,当放入 , 时vars,每次引用都会被评估。比如下面的戏


  vars:

    pwd_alias: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"

  tasks:

    - debug: var=pwd_alias

    - debug: var=pwd_alias

    - debug: var=pwd_alias


"pwd_alias": "RrhCtAFEHievoTY"

"pwd_alias": "TxHCsdKlpweqVJL"

"pwd_alias": "xbFLVvuMkkNkqIE"

解决方案很简单。将评估pwd_alias放入任务中。例如


tasks:

  - set_fact:

      pwd_alias: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"

  - set_fact:

      my_pass: "{{ pwd_alias | password_hash('sha512') }}"


查看完整回答
反对 回复 2022-05-24
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

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