Ansible 重试获取尝试次数

问题描述 投票:0回答:3

我正在使用通过 ssh 连接到设备的任务。延迟并不总是恒定的,有时当提示未及时显示时任务会失败。

假设可以控制此任务的超时值,是否可以根据执行的尝试次数按比例动态增加此超时?

类似这样的事情

- name: task_name
  connection : local
  task_module:
    args...
    timeout : 10 * "{{ attempt_number }}"
  retries: 3
  delay: 2
  register: result
  until: result | success
ansible
3个回答
0
投票

我认为在运行任务时不可能获得当前的尝试次数,目前还不清楚你为什么要尝试实现这样的目标。

您能详细说明一下吗?


0
投票

是的,这是可能的,这里有文档

当你使用until运行任务并将结果注册为变量时,注册的变量将包含一个名为“attempts”的键,该键记录了任务的重试次数。


0
投票

不幸的是,除了until条件之外,无法访问尝试

在此示例中,循环将在两次尝试后结束

- name: "Attempts test"
  debug:
    msg: "{{ cycle_state.attempts if cycle_state is defined else 'undefined' }}"
  register: cycle_state
  until: cycle_state.attempts > 2
  delay: 5
  retries: 5

- debug:
    msg: "{{cycle_state}}"
© www.soinside.com 2019 - 2024. All rights reserved.