ansible - Ansible - 在循环中附加一个字符串 var 本身
问题描述
我在循环中附加一个字符串 var 本身时遇到问题。
喜欢
var:
a: ""
var:
package:
- {{ iterations: 0 , newvar : b }}
- {{ iterations: 1 , newvar : c }}
- {{ iterations: 2 , newvar : d }}
- {{ iterations: 3 , newvar : e }}
- set_fact:
a: a + {{newvar}}
loop: {{ package }}
我预计答案应该是 a = bcde
但我在 set_fact 中也有代码 if-else。(它使代码更复杂)代码如下:
var:
portq: ""
var:
package:
- {{ iterations: 0 }}
- {{ iterations: 1 }}
- {{ iterations: 2 }}
- {{ iterations: 3 }}
- set_fact:
portq: "{% if q_port_result.results[item.iterations].cde != 'unknown' %}{{ portq + q_port_result.results[item.iterations].cde}}{% else %}{% endif %}"
loop: "{{ package }}"
我的问题是如何添加带有新变量的“portq”。
总是提示错误“The error was: 'portq' is undefined\n\n”
非常感谢!
解决方案
- name: test
hosts: localhost
become: false
vars:
package:
- iterations: 0
newvar: b
- iterations: 1
newvar: c
- iterations: 2
newvar: d
- iterations: 3
newvar: e
tasks:
- set_fact:
a: "{{ a | default('') + item.newvar }}"
loop: "{{ package }}"
- debug: var=a
推荐阅读
- css - SASS / SCSS:读取目录中的文件名
- javascript - 如何在 html-to-pdfmake 中使用列?
- react-native - Socket.io expo 反应本地客户端反复更改 socket.id 并显示 disconnect=true
- php - Laravel 没有在 if 语句中调用函数
- kubernetes - kubernetes pod 重启需要时间和停机时间
- c++ - 前向声明模板函数特化的定义
- node.js - Firebase 未将数据添加到 React 中的实时数据库
- math - 理解求和符号中的最大值
- enterprise-architect - 如何通过 API 提取应用到 Enterprise Architect 中的需求工件的基本原理和问题
- performance - Is the Redis cluster installed in k8s have less performance compared to installed standalone?