Random Ansible分配随机数并增加重试次数

Random Ansible分配随机数并增加重试次数,random,ansible,Random,Ansible,我试图给一个列表中不存在的变量分配一个7000到7005之间的随机数。 该列表有7000、7001、7004和7002 - name: Set fact set_fact: val: "{{ 7004 | random(start=7000) }}" until: val not in list 上述剧本尝试分配3次,但失败。它没有分配值7003 TASK [xxx] ****************************** task path:

我试图给一个列表中不存在的变量分配一个7000到7005之间的随机数。 该列表有7000、7001、7004和7002

- name: Set fact 
  set_fact:
    val: "{{ 7004 | random(start=7000) }}"
  until: val not in list  
上述剧本尝试分配3次,但失败。它没有分配值7003

TASK [xxx] ******************************
task path: /tmp/awx_164677__l9__xmu/project/roles/xxxxx/tasks/main.yml:26
FAILED - RETRYING: Set fact  (3 retries left).
FAILED - RETRYING: Set fact  (2 retries left).
FAILED - RETRYING: Set fact  (1 retries left).
fatal: [xxxprod]: FAILED! => {"ansible_facts": {"val": "7000"}, "attempts": 3, "changed": false}
如何将重试值从3增加到其他值

注意:上面的列表已由该剧本更新,只有最后一个值未更新


谢谢。

重试次数
playbook关键字可用于指定在
直到
循环中放弃之前的重试次数。此设置仅与
until
关键字结合使用

- name: Set fact 
  set_fact:
    val: "{{ 7004 | random(start=7000) }}"
  until: val not in list
  retries: 5

以下是您查看更多信息的参考信息

仅从缺少的项目中进行随机选择。下面的剧本解决了随机完成序列的一般问题

-hosts:localhost
变量:
VAL:[7000,7003]
VAL_all:[7000、7001、7002、7003、7004]
VAL|U缺失:{{VAL|U all |差异(VAL)|长度}}”
任务:
-设定事实:
vals2:“{{vals}}”
-设定事实:
vals2:{{vals2+[vals|U all |差(vals2)|随机]}”
带_序列:end=“{vals_missing}”
-调试:
变量:VAL2
给予

vals2:
- 7000
- 7003
- 7002
- 7001
- 7004

如果您想迭代随机生成缺少的项目,请参阅下面的剧本

-hosts:localhost
变量:
VAL:[7000,7003]
VAL_all:[7000、7001、7002、7003、7004]
VAL|U缺失:{{VAL|U all |差异(VAL)|长度}}”
任务:
-设定事实:
vals2:“{{vals}}”
-调试:
var:val
带_序列:end=“{vals_missing}”
变量:
val:{{[vals|u all | difference(vals2)| random]}”
vals2:“{{vals2+[VAL]}”
给予

ok:[localhost]=>(项=1)=>
ansible_循环变量:项
项目:“1”
瓦尔:
- 7002
确定:[localhost]=>(项=2)=>
ansible_循环变量:项
项目:“2”
瓦尔:
- 7004
确定:[localhost]=>(项=3)=>
ansible_循环变量:项
项目:“3”
瓦尔:
- 7001
更改变量
vals:[7000、7001、7004、7002]
以解决您的问题。(但是,这并不重要,因为只缺少一项。)