问题标签 [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.
ansible - 从 Ansible 模板生成文件而不执行播放?
我正在尝试为我的剧本构建一个 Ansible 模板文件,并且需要进行一定的反复试验才能找出模板 (.j2) 文件所需的正确模板变量。有什么方法可以运行 Ansible 以便它从模板生成文件而不实际执行 playbook 中的任务?我只想查看将从模板创建的文件,但在我知道我的模板正确之前不要自己运行播放。
python - ansible 条件模板
我想在 ansibles jinja 模板中有一个简单的 if else 条件。对于普通蟒蛇
如果定义了以下变量,则效果会更好:
在 ansible 中,我看到以下错误:
这是一个最小的例子:
文件_1:变量
文件_2:剧本.yml
文件_4:库存
文件_5:bare_cluster.bp.j2
执行最小示例的命令是ansible-playbook -i inventory playbook.yml -e 'cluster_name=examplecluster'
ansible - 如何将 listB 中的所有项目连接到 listA 中的所有项目?
我试图弄清楚如何创建一个 Ansible 列表,该列表是将 listB 中的每个字符串附加到 listA 中的每个字符串的结果,从而有效地将两个字符串列表相乘。
在python中我会这样做:
在其他语言中,我会将一个for
循环嵌套在另一个循环中。
我无法在 Ansible 中找到与此类似的东西。
我这样做的原因是允许角色自动确定主机所在的站点。我的所有主机都位于至少一个以物理位置和站点类型(开发、登台、生产)命名的组中。例如,纽约生产站点的组将是“nyc-prod”。我需要我的剧本才能从主机所在组的完整列表中挑选出站点名称。
给定所有可能站点的列表,我可以将该列表与主机所在的组列表相交,生成的单元素列表将包含当前主机的站点。
group_vars/all
我可以通过将所有可能的站点类型组合的列表手写到角色中或角色中来强制执行此操作vars/main.yml
,但是对于大量站点,这会乘以必须维护的大量列表。所以我的方法是尝试从更短的物理站点列表和类型列表中以编程方式构建列表。
如果我可以在 jinja 模板中嵌入任意 python,我可以在以下位置执行类似的操作tasks/main.yml
:
然而,这显然行不通。
以前有没有人解决过这个问题?
注意:我使用的是 Ansible 2.2.1.0
ansible - 使用 with_dict 的 Ansible jinja 模板
所以我对 Ansible 还是很陌生,我正在尝试生成一个 DHCP 配置文件作为我的第一个真实世界的 Ansible 项目。
我在 RHEL7 上使用 ansible 2.2.1.0。
因为我的所有配置都存储在 yaml 中,所以我要崩溃了
在 ansible playbook 本身中,我可以使用以下代码打印每个项目的属性
但是,当我使用它来生成包含这些属性的配置文件时,我不知道如何执行此操作。我看不到 jinja2 的 with_dict 选项。
我曾希望在 with_dict 循环中使用模板并拥有类似于以下的模板
我是否试图以错误的方式解决这个问题?
我已经阅读了一些类似的问题,但它们似乎涉及必须整理字典,如果可能的话,我很想避免这种情况。
任何建议将不胜感激。
谢谢
ansible - Ansible/jinja2:在 if 条件下使用过滤结果
是否可以在 ansible playbook 的条件下使用 Jinja2 过滤器的结果?
我试图让这个工作,但没有成功:
我当前测试中的item设置为localhost(并且可以是任何其他私有或公共域)。
应该这样做:如果item是 IPv4 地址,则应返回地址,否则应将其“转换”(使用dig进行 DNS 查找)为 IPv4 地址 - 但它始终返回主机名。
任何想法?
提前感谢马蒂亚斯
ansible - 我想在 Jinja2 的 Ansible 上下文中包含另一个 Jinja2 模板
我有一个设置很多变量的 Ansible 剧本。其中一个剧本有这个任务:
模板main_config.j2
写入在父 Ansible playbook 和任务中定义为变量的字符串。
我想包含另一个基于 Ansible 变量值的 Jinja2 模板。
job
是在父 playbook 中设置的 Ansible 变量。
这是行不通的。可能是什么问题呢?
ansible - 如何在 Ansible 中使用带变量的默认值?
我知道我可以默认使用一个简单的硬编码字符串,但我正在尝试这样做:
但它将其添加为字符串而不是对其进行评估。
ansible - Ansible 2.2:使用 with_sequence 在列表中查找值
我想做以下事情:
我有 port_list 变量,其中包含要插入每个属性文件的端口。我有以下错误作为回报:
任何的想法 ?我也试过
至今没有成功。
ansible - Ansible 循环 - 如何将模板值与 with_items 匹配?
我正在尝试创建具有与其值匹配的with_items
值的文件。
我有一个像这样的 var 列表:
我为此任务的列表中的每个对象创建单独的文件:
这两个都很好用。我需要在我的模板文件中拥有什么才能创建一个名为blue.conf
并且只有.google.com
我尝试了很多变化。我最接近的是:
这将创建单个文件,但每个文件都有所有域和 cnames。