ansible - 将 ansible 列表的默认值定义为字典
问题描述
我正在使用附图中显示的代码:用于我的循环的代码
我需要每次迭代从 开始计数0
,而不是从开始计数1
。我的意思是以下行:
tmp_list: "{{ tmp_list | default([]) + [dict(name=item.key,seq=lookup('sequence','count='+item.value|string,wantlist=true))] }}"
感谢您的帮助。
解决方案
它并不完全清楚你的要求。
如果您只是想获得当前循环迭代的次数 + 1,您可以使用以下内容:
#!/usr/bin/env ansible-playbook
---
- name: Lets do some loops
hosts: localhost
become: false
gather_facts: false
vars:
my_list:
- one
- two
- three
tasks:
- name: Loop plus one
debug:
msg: "{{ item }} {{ loop_index + 1 }}"
loop: "{{ my_list }}"
loop_control:
index_var: loop_index
PLAY [Lets do some loops] ********************************************************************************************
TASK [Loop plus one] *************************************************************************************************
ok: [localhost] => (item=one) => {
"msg": "one 1"
}
ok: [localhost] => (item=two) => {
"msg": "two 2"
}
ok: [localhost] => (item=three) => {
"msg": "three 3"
}
PLAY RECAP ***********************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
您可以在 Ansible 官方文档的Loop Control部分找到更多信息。
推荐阅读
- java - 从 Mono 中收集 int 值
使用 WebFlux 的对象 - javascript - 运行在 Promise.then() 中定义的函数
- java - 使用 Jackson 将多个 json 键反序列化到一个字段
- string - 在 Matlab 中搜索文本中的整个单词
- java - 如何在每个并发线程中用 Java Swing 进行绘制?
- excel - Excel:如何使用一个函数的结果作为公式的参数/范围
- prolog - Prolog - 实施埃拉托色尼筛法的麻烦
- css - 如何将 :before 伪类与 :not 伪类一起使用?
- r - 为什么 strsplit("A, B . C",c(", ",". ")) 不删除 ". "?
- youtube - 上传最新公开视频的 Youtube iframe 代码