ansible - 如何将比较运算符与字典值一起使用?
问题描述
我正在尝试编写一个任务,根据条件将字典值存储在变量中。
我是这项技术的新手。请任何人帮助解决以下请求。
我尝试使用以下代码。请检查以下。
- set_fact:
v1: "{{ v1|default([]) + item.keys() if item.values() == false else 1 }}"
loop: "{{ dv }}"
'dv' 是一本字典。
[{1A:True},{2A:True},{3A:False},{4A:False}]
实际上,在这里我试图通过仅使用比较运算符将错误值存储在 v1 中。
预期输出:
v1 应包含以下列表:
[3A,4A]
Ansible 版本:2.5.15
解决方案
你可以试试下面的代码。
- hosts: localhost
connection: local
vars:
dv: [{1A:True},{2A:True},{3A:False},{4A:False}]
v2: []
v1: []
tasks:
- set_fact:
v1: "{{ v1|default([]) }} + [ {{ v1.append((item.keys()|first).split(':')[0]) if (item.keys()|first).split(':')[1] == 'False' else v2.append('1') }} ]"
with_items: "{{ dv }}"
- debug:
msg: "{{ v1 }}"
这里 v2 是一个变量,如果条件不满足,则声明为定向。
上述代码的输出如下:
ok: [localhost] => {
"msg": [
"3A",
"4A"
]
}
推荐阅读
- c# - 在已发布的 ASP.Net Core API 中创建和保存文件不起作用
- javascript - 放入 carousal 时图像被拉伸
- sql - 分层列标签 SQL
- php - 如何在 laravel 中设置未来的软删除
- javascript - 有没有办法在添加时仅使用带有数字索引的 javascript 添加 DOM 元素?
- python - 如何在 Pandas Python 中按 id 对行进行排名
- selenium-ide - 我如何从搜索框中获取值该框是自动完成的
- php - 在 Doctrine Query builder Query 中调用自定义 MySql 函数
- sharepoint - 使用图形 api 创建站点
- javapos - ACE 的 IBM 4690 SI AEF 扩展