问题标签 [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 回答
136 浏览

ansible - Ansible 高级变量解析

我是 Ansible 的新手,因此这个问题对于更高级的用户来说可能看起来很愚蠢,我不确定是否可以按照我的要求做,因为 Ansibel 在循环和条件方面非常有限。

我在 Virtual Connect 交换机上执行任务,因此我只能使用原始模块。

我有以下标准输出:

问题是 STDOUT 可以有多条线路,其中包含不同的配置文件,即我事先不知道线路号或 MAC 地址。

我想要实现的是状态检查。如果 ProfileCLO01ESX02有 Network Name:Multiple Network两次,那么我想跳过该任务。

每当我在谷歌上搜索解析变量或 STDOUT 时,我都会得到基本的答案。

Ansible 可以做到这一点,还是我被迫编写自定义脚本?

0 投票
1 回答
1070 浏览

ansible - 从 json 响应 uri - 如何提取 json 键和值并使用 ansible json 查询过滤器验证它们?

使用 ANSIBLE:我从 url 获取 json 响应并打印响应,但无法打印特定的键/值。(请参阅 json 响应)在我的脚本中我会传递服务,所以我只想在标签下打印特定版本的服务。例如,我会将 abc 作为参数传递给 ansible playbook,然后我想在该标签下打印版本。我尝试了 json 查询过滤器,但无法得到这个。

我的 json 响应是这样的。

任何帮助将不胜感激。

0 投票
2 回答
789 浏览

ansible - 带有可变插值的 Ansible WHEN

从我在网上找到的资料来看,Ansible 在 jinja 模板方面并不能很好地支持变量插值。

但是我确信在 Ansible 中更高级的人已经找到了解决我的问题的方法。

我想将一个变量“插入”到WHEN语句中。IEwhen: Disabled in (smart_link_status.results[item[0]].stdout)

这是我的玩法:

我怎样才能做到这一点?似乎我可以使用普通模块轻松做到这一点,即调试但不能使用WHEN语句。

这工作正常:

任何帮助或指示将不胜感激。

0 投票
1 回答
10969 浏览

ansible - Ansible concat 默认变量和文字字符串

我无法做一件非常简单的事情。

在我的任务中,我试图将两个默认变量与文字字符串连接起来以创建路径

这给了我一个错误。知道如何连接变量和文字字符串吗?

0 投票
1 回答
113 浏览

ansible - 是否可以使用 with_dict 模块和 ansible-fact ?

我正在尝试编写一个角色来配置一个 keepalived 集群。我希望根据目标框的 IP 将唯一信息传递到模板中。

在这种情况下:服务器 A 是 192.168.1.140,服务器 B 是 192.182.1.141,VIP 是 192.168.1.142

字典看起来像这样:

我希望任务看起来像这样:

模板看起来像这样:

任何见解将不胜感激约翰

0 投票
3 回答
6194 浏览

ansible - 转义或区分 Ansible 中的 jinja 模板变量和.

历史:

在过去的几个月里,我们一直在使用 Ansible 来部署我们的服务和配置文件,并且我们一直在使用 Ansible 变量。变量被放置在我们的 (config_name).yml.j2 文件中,这使我们能够轻松地进行更改,而无需对所有配置进行硬编码。

例如在 Ansibles group_vars 中,我们可能有:

metric_port_var: "9100"

并且 (config_name).yml.j2 将包含一行:

EXPOSE_METRIC_PORT={{ metric_port_var}}

部署配置后,盒子上的配置现在是:

EXPOSE_METRIC_PORT=9100

问题:

现在我们正在为 AlertManager/Prometheus 部署配置。出现的问题是 AlertManager 也在我们尝试部署的自己的配置文件中使用 jinja 模板变量。这些其他 jinja 模板将来自盒子上的其他配置文件。

这意味着我们的 (config_name).yml.j2 理论上将包含大括号变量的混合,其中一些可能属于 Ansible,而另一些则属于另一个文件。

我们不能再使用 Ansible 的“模板”模块来部署我们的配置,因为在 group_vars 中找不到变量时会引发错误,因为特定的变量应该来自 AlertManager。

我们需要一种混合 jinja 模板或转义一些花括号而不是其他花括号的方法。现在我们回到硬编码我们的配置并让 AlertManager 使用所有变量。

0 投票
1 回答
93 浏览

ansible - Ansible 如何根据模板/剧本确保所有远程节点都处于所需状态

假设在运行剧本后,如果有人试图更改 Ansible 管理的一个/多个节点上的配置。那么 Ansible 如何知道他的一个/多个托管节点不同步并将其正确同步到所需状态。

我认为我们在其他自动化平台(如 Chef 和 Puppet)中也有此功能,其中远程代理定期运行以与主服务器模板同步。

还有什么是这样做的最佳实践。

0 投票
2 回答
1699 浏览

ansible - Ansible concat vars 到字符串

我花了一天的大部分时间试图解决这个问题,但到目前为止都失败了。我正在构建一些剧本来自动化 Splunk 中的功能,并尝试从清单组 EG 转换主机列表

我从该剧的调试输出中得到的预期(期望)结果应该是: https://1.2.3.4:8089, https://5.6.7.8:8089

我试图通过对正在运行的主机运行以下剧本来完成此操作:

使用模板bootstrap-sh-deployer.j2

但是,当前播放返回search_head_uri: ", "告诉我循环正在运行,但{{ host }}没有解决。

0 投票
1 回答
72 浏览

ansible - 直接在目标系统上更改值,而不是从源复制文件

使用 ansible 寻找直接在目标系统上更改值的想法,而不是从源复制文件。

例子:

我在目标系统上有许多 tmpl 格式的文件,并且想<%= applicationname_zk_quorum %>通过动态使用 ansible 变量来更改与此相关的值。

我知道 ansible 变量仅支持处理 yaml 并且不知道是否可以为 tmpl 文件应用某些内容。

非常感谢大家的支持和指导!!!。

0 投票
1 回答
287 浏览

ansible - 将已执行的 ansible Tower 作业的作业类型从检查更改为重新运行时运行

在我的应用程序的持续交付步骤中,我希望 Jenkins 在作业类型检查中调用 ansible tower 作业(通过 tower cli)。

一旦 devops 团队决定发布它,我希望他们只需将作业类型更改为“运行”,以便可以进行实际部署。这个想法是保留 Jenkins 构建的工件的额外参数,如版本,并避免 devops 团队手动将它们复制到其他作业模板。

在 ansible tower 中,我没有看到将执行的检查作业编辑为运行作业类型的选项。有没有更好的方法来“缓存”塔中的部署信息以供以后部署?