Ansible Playbook:如何将元数据映射至变量?配置遇阻求解
问题分析与解决
你的问题出在两个关键错误上:
- 错误使用
map过滤器:map(attribute='xxx')是用来遍历列表/可迭代对象提取对应属性的工具,但你的result是字典结构,result.meta同样是字典,完全不需要这个过滤器。 - 属性路径错误:
appname和vipport实际嵌套在result.meta节点下,并非直接挂在result根节点。
正确的Playbook代码
- debug: var: result - name: convert set_fact: var1: "{{ result.meta.appname }}" var2: "{{ result.meta.vipport }}" # 可选:验证变量赋值结果 - debug: var: var1 - debug: var: var2
容错补充(可选)
如果担心meta节点可能不存在导致报错,可以添加默认值处理:
var1: "{{ result.meta.appname | default('default_app') }}" var2: "{{ result.meta.vipport | default(8080) }}"
内容的提问来源于stack exchange,提问作者user2214162
相关产品推荐
相关产品推荐

