community.general.merge_variables 查询 – 合并名称匹配给定模式的变量
注意
此查询插件是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则您可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。
要在剧本中使用它,请指定:community.general.merge_variables
。
community.general 6.5.0 中的新增功能
概要
此查询返回作用域内所有匹配给定前缀、后缀或正则表达式(可选)的变量的合并结果。
术语
参数 |
注释 |
---|---|
根据 |
关键字参数
这描述了查询的关键字参数。这些是在以下示例中的值 key1=value1
、key2=value2
等:lookup('community.general.merge_variables', key1=value1, key2=value2, ...)
和 query('community.general.merge_variables', key1=value1, key2=value2, ...)
参数 |
注释 |
---|---|
搜索属于给定组的主机上的变量。这允许收集不同主机上的配置片段(例如,主机上的服务及其数据库在另一台主机上)。 |
|
一个开始的初始值。 |
|
当键被覆盖时,返回错误、打印警告或忽略它。 默认行为 当使用 选项
配置
|
|
更改搜索指定模式的方式。 选项
配置
|
备注
注意
当关键字参数和位置参数一起使用时,位置参数必须列在关键字参数之前:
lookup('community.general.merge_variables', term1, term2, key1=value1, key2=value2)
和query('community.general.merge_variables', term1, term2, key1=value1, key2=value2)
示例
# Some example variables, they can be defined anywhere as long as they are in scope
test_init_list:
- "list init item 1"
- "list init item 2"
testa__test_list:
- "test a item 1"
testb__test_list:
- "test b item 1"
testa__test_dict:
ports:
- 1
testb__test_dict:
ports:
- 3
# Merge variables that end with '__test_dict' and store the result in a variable 'example_a'
example_a: "{{ lookup('community.general.merge_variables', '__test_dict', pattern_type='suffix') }}"
# The variable example_a now contains:
# ports:
# - 1
# - 3
# Merge variables that match the '^.+__test_list$' regular expression, starting with an initial value and store the
# result in a variable 'example_b'
example_b: "{{ lookup('community.general.merge_variables', '^.+__test_list$', initial_value=test_init_list) }}"
# The variable example_b now contains:
# - "list init item 1"
# - "list init item 2"
# - "test a item 1"
# - "test b item 1"
返回值
键 |
描述 |
---|---|
如果搜索匹配列表项,则返回列表。如果搜索匹配字典,则返回字典。 返回:成功 |