如何为ansible中的变量分配随机数?

Ern*_*ibl 12 ansible ansible-playbook

这是一个ansible脚本,我期望打印出相同的随机数三次.相反,它打印出三个随机数.如何为ansible中的变量分配一个随机数,以便在整个剧本中修复它?

---
- name: Test random filter
  hosts: localhost
  gather_facts: False
  vars:
    random_number: "{{ 100 | random }}"
  tasks:
    - name: Print the random number
      debug: var=random_number
    - name: Print the random number
      debug: var=random_number
    - name: Print the random number
      debug: var=random_number
Run Code Online (Sandbox Code Playgroud)

nik*_*kov 20

set_fact首先将模块用作任务:

 - set_fact:
     r: "{{ 100 | random }}"
   run_once: yes
Run Code Online (Sandbox Code Playgroud)

随后,debug: msg=...具有r固定的价值.

  • `run_once: yes` 意味着该数字对于将运行该剧本的所有主机来说都是相同的。如果没有它,每个主机将获得自己的随机数,该随机数将在整个剧本中保持不变。 (2认同)