问题标签 [ansible-template]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5318 浏览

ansible - (Ansible) 如何在模板/Jinja2 中获取一组主机的所有库存变量作为列表?

我正在使用这种类型的 Ansible 库存编写自动化:

我这样做是因为有时主机具有不同的公共 IP 与私有 IP(例如 AWS)。

现在在配置任何主机时,我需要在模板模块的 jinja2 文件中获取一个类似“privateIp1,privateIp2”的 csv。

最好,我什至不想引用组名“节点”,而只是要求“给我当前主机组的所有成员的所有 'privateIp' 库存变量的列表”。<< 假设我的主人只是一个小组的成员。

如果不可能,有没有办法引用组名并执行此操作?

0 投票
1 回答
43 浏览

ansible - Ansible:实现生产者到消费者的映射算法

因此,场景是我的生产者和消费者的比例为 7:1,并且我希望在我的服务中对生产者和消费者进行一致且确定性的多重映射。消费者列表在配置中提供给每个生产者,这是通过 ansible 完成的。因此,我尝试在 ansible本身中实现映射逻辑,而不是传递整个消费者列表,并在生产者服务中进行。因此,我想到了使用自定义过滤器从消费者列表中过滤出来,并将其分配给生产者。下面是我写的自定义过滤器:

当与这样的静态争论一起使用时,此过滤器按预期工作:

但我想通过 jinja2 模板使其使用动态参数,例如:

但是由于变量嵌套而导致错误,这在 Jinja2 中是不允许的。如果我尝试这样的事情:

它会打印出这样的字符串:

有人可以建议什么应该是实现这一目标的最佳方法。我应该使用脚本模块并在 bash 中转换逻辑,还是将其仅保留在服务中会更好。

0 投票
2 回答
988 浏览

ansible - 如何使用 jinja2 获取名称为 var 的 var 值

我正在使用ansible模板化 jinja2 文件。

网络适​​配器有一个名为 ka_interface 的变量。

但你会在 3rd var 中得到错误
(IP:{{ ansible_{{ ka_interface }}.ipv4.address }} )

看来jinja2模板中的var是可以嵌套的。

0 投票
1 回答
86 浏览

ansible - Ansible 动态值替换

我对 Ansible 有点陌生,并用模板编写了 ansible 剧本。我的模板具有如下属性。

主机名:{{ ansible_fqdn }} --> 这是我的目标机器主机名

港口: ???

端口在这里会有所不同。对于主机 1,它将是 7800,对于主机 2,它将是 7801,依此类推...

有人可以帮助我实现这一目标吗?

0 投票
7 回答
16313 浏览

docker - Ansible w/ Docker - 显示当前容器状态

我正在做一个使用 Docker 容器的小Ansible项目。

我会简短地提出我的问题:

我想获得一个正在运行的 Dockercontainer 的状态!

我的意思是,我想获取容器的当前状态,Docker 通过使用“docker ps”命令向您显示。

例子是:

  1. 向上
  2. 退出
  3. 重启

我想从特定容器中获得其中一个结果。但使用CommandShell 模块

韩国

0 投票
1 回答
2195 浏览

ansible - 如何在 Ansible 中使用模板在同一任务中生成 json 文件

我需要从 Hazelcast 产品中获取 JMX 指标。我创建了一个连接到 JMX 端口的 Logstash 进程。这个过程必须读取一个 json,其中包含 Hazelcast JMX 的主机名、端口、集群、环境等信息。我需要在 Logstash 机器上部署每个 Hazelcast 机器/端口的 json 文件。在这种情况下,有 3 台 Hazelcast 机器,共有 6 个进程,具有不同的端口。

示例数据:

Hazelcast 主机名:hazelcast01、hazelcast02、hazelcast03 Hazelcast 端口:6661、6662、6663、6664、6665 Logstash 主机名:logstash01、logstash02、logstash03

Ansible 中的 Hazelcast 信息字典:

Ansible 中的任务示例:

最终结果应如下所示:

以下是 json 内容的示例:

我认为我遇到的问题是 with_dict 选项不允许使用清单主机列表和字典。

如何为每台机器/端口获取这一代的 json 文件?

0 投票
1 回答
140 浏览

python-3.x - 配置后无法使用 Ansible 提取 EC2 public_ip

我正在运行 Ansible 游戏来配置 EC2 实例,但我无法提取public_ip参数。这是该剧:

这是调试输出的一部分:

如果我尝试配置一个实例 ( count: 1),那么我可以使用提取 IP ec2_webserver1.instances[0]['public_ip']- 我不确定这是提取 IP 的正确方法。我猜这可能是错误的相关部分:

但不知道如何修改剧本。我在这里想念什么?

0 投票
1 回答
230 浏览

ansible - 迭代一个列表并创建一个变量(字符串)

我有一个包含多个环境的列表。我想迭代它并使用迭代值创建一个变量。

例如:

使用循环我应该能够创建一个变量

我对 Ansible 很陌生。我无法为此找到一种解决方案。

0 投票
0 回答
1609 浏览

ansible-template - 在同一任务中使用 with_items 和 with_dict 的 ansible 模板

ansible 2.3.0.0 和 python 版本 2.7.5

如果我在没有“with_items”的情况下运行任务并且在没有经理和助理经理信息的情况下运行模板,它会运行但hotel2 在文件中两次,而hotel1 就是它。

谢谢

0 投票
1 回答
344 浏览

ansible - 如何在 Ansible 变量中使用另一个变量?

如何使这里的 echo 语句正确?我使用 Ansibledebug模块时能够正确获取值,但在 shell 模块中不能。