如何用ansible生成随机密码

Kub*_*uba 7 ansible

或者我应该问:如何只评估一次价值?

- name: Demo
  hosts: localhost
  gather_facts: False
  vars:
    my_pass: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
  tasks:
  - debug:
      msg: "{{ my_pass }}"
  - debug:
      msg: "{{ my_pass }}"
  - debug:
      msg: "{{ my_pass }}"
Run Code Online (Sandbox Code Playgroud)

每个调试语句将打印出不同的值,例如:

PLAY [Demo] *************

TASK [debug] ************
ok: [localhost] => {
    "msg": "ZfyzacMsqZaYqwW"
}

TASK [debug] ************
ok: [localhost] => {
    "msg": "mKcfRedImqxgXnE"
}

TASK [debug] ************
ok: [localhost] => {
    "msg": "POpqMQoJWTiDpEW"
}

PLAY RECAP ************
localhost                  : ok=3    changed=0    unreachable=0    failed=0   
Run Code Online (Sandbox Code Playgroud)

ansible 2.3.2.0

Kon*_*rov 21

使用set_fact分配永久的事实:

- name: Demo
  hosts: localhost
  gather_facts: False
  vars:
    pwd_alias: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
  tasks:
    - set_fact:
        my_pass: "{{ pwd_alias }}"
    - debug:
        msg: "{{ my_pass }}"
    - debug:
        msg: "{{ my_pass }}"
    - debug:
        msg: "{{ my_pass }}"
Run Code Online (Sandbox Code Playgroud)


D.F*_*itz 10

我一直这样做,从来没有问题。

- name: Demo
  hosts: localhost
  gather_facts: False 

  tasks:
   - set_fact:
       my_pass: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
   - debug:
       msg: "{{ my_pass }}"
Run Code Online (Sandbox Code Playgroud)