gpt4 book ai didi

loops - 如何在 Ansible 中打破循环?

转载 作者:行者123 更新时间:2023-12-04 03:03:10 25 4
gpt4 key购买 nike

想要在 item 的值变成 7 后中断任务,这里是示例任务

   - hosts: localhost
tasks:
- shell: echo {{ item }}
register: result
with_sequence: start=4 end=16
when: "{{ item }} < 7"

在上面的代码中,它从 4 到 16 迭代任务,如下所示
PLAY [localhost] ***********************************************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************************************
ok: [localhost]

TASK [command] *************************************************************************************************************************************************
[WARNING]: when statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ item }} < 7

changed: [localhost] => (item=4)
changed: [localhost] => (item=5)
changed: [localhost] => (item=6)
skipping: [localhost] => (item=7)
skipping: [localhost] => (item=8)
skipping: [localhost] => (item=9)
skipping: [localhost] => (item=10)
skipping: [localhost] => (item=11)
skipping: [localhost] => (item=12)
skipping: [localhost] => (item=13)
skipping: [localhost] => (item=14)
skipping: [localhost] => (item=15)
skipping: [localhost] => (item=16)

PLAY RECAP *****************************************************************************************************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0

最佳答案

Ansible 运行循环并:

  • 用于元素 4 , 5 , 和 6执行 echo命令 - 显示 changed状态,
  • 对于剩余的项目,它不会执行它 - 显示 skipped状态,

  • 你已经实现了你想要的。

    您唯一可以改进的是通过修复条件来消除警告:
    - hosts: localhost
    tasks:
    - shell: echo {{ item }}
    register: result
    with_sequence: start=4 end=16
    when: "item|int < 7"

    关于loops - 如何在 Ansible 中打破循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47263471/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com