猿问

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

- 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 }}"

当我运行它时,它会做它应该做的事情。它创建我指定的用户和主目录。它还会打印出密码和哈希值,但无论我做什么,我都无法记录对该用户的更改。


任何有关如何正确获取分配给该用户的密码的建议将不胜感激。


慕尼黑8549860
浏览 113回答 1
1回答

慕沐林林

问题是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') }}"
随时随地看视频慕课网APP

相关分类

Python
我要回答