如何使用ansible生成单个可重复使用的随机密码

如何使用ansible生成单个可重复使用的随机密码,ansible,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 }}"

也就是说:如何只对密码查找进行一次评估

- 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 }}"
每个调试语句将打印出不同的值,例如:

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   

ansible 2.3.2.0

使用
设置事实
分配永久事实:

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

我一直这样做,从来没有遇到过问题

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

那么你问的问题是什么?如何生成标题中的密码,或者如何只计算一次值?请编辑您的问题,使其保持一致。因此,在默认值/vars/etc中无法做到这一点?在一个更大的对象中有一个变量可以使用?我们必须运行一个任务并设置一个事实?