gpt4 book ai didi

ansible - 在迭代剧本中的列表时将变量动态传递到 Ansible 模板

转载 作者:行者123 更新时间:2023-12-01 23:41:51 26 4
gpt4 key购买 nike

Ansible 大师我需要你的帮助。我有一个带有变量的模板,我需要在遍历剧本中的列表时动态设置。目前尚不清楚如何将变量“注入(inject)”到模板中以在迭代时使用。

目标是在一个目录中创建许多配置文件,列表中的每个 var 一个。例如,如果列表是 A, B, C我分别想要文件 A.conf、B.conf、C.conf。

在模板配置文件中,还有一个变量需要分别设置为 A、B 或 C。我尝试使用 set_fact并从列表项和引用中设置变量。我试图引用 {{ item }}之内。都失败了?

apps:
- one
- two
- three

tasks:
- name: Install Logstash config
template: src={{ upload_dir }}/deploy/logstash-etl.conf dest=/opt/logstash/bin/etl-{{ item }}.conf
set_fact:
app: "{{ item }}"
delegate_to: "{{ logstash_host }}"
with_items: apps

在我尝试引用的模板文件中 {{ app }}{{ item }}而且我似乎无法让它识别动态变量以根据迭代的当前值设置它的值。

如果我有应用程序,则预期:一、二、三将是一个文件夹中的 3 个文件,每个文件分别命名为 etl-one.conf、etl-two.conf、etl-three.conf,并且在每个文件中,配置中的变量动态设置为“topic_id”:etl-one.conf 的“etl.one.Event”和 etl-two.conf 的“topic_id”:“etl.two.Event”。

非常感谢您的任何想法。 set_fact是我最近的尝试,但失败了
ERROR: multiple actions specified in task: 'template' and 'Install Logstash config'
exit status 1

最佳答案

我让它工作没有错误。看起来模板可以引用 {{ item }}迭代时的变量,以便在模板中使用它。

- name: Install Logstash config
template: src={{ upload_dir }}/deploy/logstash-etl.conf dest=/opt/logstash/bin/etl-{{ item }}.conf
delegate_to: "{{ logstash_host }}"
with_items: apps

在模板文件中:
"topic_id": "etl.{{ item }}.Event"

关于ansible - 在迭代剧本中的列表时将变量动态传递到 Ansible 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37056239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com