如何解决如何使用 Ansible 中的主机变量值更新角色的参数?
我正在使用 Ansible Datadog role 并尝试在目标服务器中安装和配置 datadog 代理,但是,我遇到了需要使用主机变量并使用这些变量更新剧本部分的问题。该变量有多个由空格分隔的值。我想确保根据变量值将这些值添加到剧本中。以下示例将有助于理解需求。
剧本:
- hosts: servers
roles:
- { role: datadog.datadog,become: yes }
vars:
datadog_api_key: "{{ DD_API_KEY }}"
datadog_config:
tags:
- "AID:"{{ AID }}"
这里,标签值 AID 使用了一个同名的宿主变量,即 AID,在某些情况下,这个宿主变量可以有如下值:
AID: 100 101 102 103
有没有办法根据以下格式的变量值解析剧本的 while 执行标记部分。
tags:
- AID: 100
- AID: 101
- AID: 102
- AID: 103
我相信我不能将模板用于此类要求,因为配置是在角色的 vars 下使用的。任何建议将不胜感激。
解决方法
正如@TRW 在评论中所说,使用它应该可以解决问题:
- hosts: servers
roles:
- { role: datadog.datadog,become: yes }
vars:
datadog_api_key: "{{ DD_API_KEY }}"
datadog_config:
tags: "{{ ['AID: ']|product(AID.split())|map('join')|list }}"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。