You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何复用变量为Ansible zabbix_host模块的host_groups和tags赋值?

解决方法

直接利用Ansible的map过滤器将item.groups的列表格式转换为tags参数要求的字典列表格式,无需额外定义重复变量:

- name: Probe
  community.zabbix.zabbix_host:
    host_name: "{{ item.name }}"
    host_groups: "{{ item.groups }}"
    tags: "{{ item.groups | map('community.general.dict_kv', 'tag') | list }}"
  loop: "{{ zabbix_sensor }}"

原理说明

  • map('community.general.dict_kv', 'tag'):遍历item.groups中的每个元素,将其转换为{tag: 元素值}的字典格式
  • | list:将map返回的迭代器转换为列表,匹配tags参数的格式要求

替代方案(无community.general集合时)

如果你的Ansible环境未安装community.general集合,可通过原生过滤器组合实现:

tags: "{{ item.groups | map('regex_replace', '^(.*)$', '{\"tag\": \"\\1\"}') | map('from_json') | list }}"

该写法通过正则替换生成JSON字符串,再转换为字典,最终生成符合要求的列表结构。

内容的提问来源于stack exchange,提问作者Romain Tiennot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 12:52:13