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

ansible - Jinja2 变量超出范围

我有以下模板:

由于此处讨论的问题,此模板不起作用如何在 jinja 模板中的 for 循环上增加变量? 因为doesn't work我的意思是旋转器始终是一个并且不会改变。

那么我该如何克服以下问题?

0 投票
2 回答
1991 浏览

ansible - 确认安装点集存在的最简单的非外壳方法,每个安装点的自定义最小大小

ansible_mounts 是一个字典数组,就像这样 -

我需要确认存在一组具有最小尺寸的特定挂载点。我对此数据结构有控制权,但现在它的结构类似 -

我希望使用像 grep 这样的 selectattr() 过滤器,但它不可用。

致命:[tstServer]:失败!=> {"failed": true, "msg": "模版字符串时出现模板错误:没有名为 'selectattr' 的过滤器。字符串:{{ ansible_mounts | selectattr('mount', 'equalto', item.mount ) }}" }

使用神社 2.6。不知道为什么 selectattr() 不存在。
(这是詹金斯的输出,如果有人关心的话。)

乐于使用whenfailassertwith_itemswith_nestedcombine()和/或其他任何东西;只是还没有找到合适的组合来使它整洁。我宁愿它不采取十几个步骤 - 一个将是理想的。

建议?

附录:我可以通过一个步骤轻松地确认安装点fail: ... when: not item.mount|is_mount

...这很有趣,因为虽然/dev/shm以这种方式显示为挂载点(以及从df&之类的命令mount),但它不包含在ansible_mounts.

这意味着我不能只用ansible_mounts单独with_nested的 for来检查文件大小/dev/shm。这让我变成了一只悲伤的熊猫。

进一步的附录:

事实证明,我必须检查一个通常可通过常用文件系统获得的挂载点 (/tmp) - 最佳选项 ansible_mounts!- 一个 (/dev/shm) 是 tempfs - 最简单的似乎是 df,它也可以处理 /tmp - 以及 oracle 管理的一堆,所以它们只能通过 fdisk 获得。

最后,我必须检查每个系统的十几个驱动器,但 /tmp 是 ansible_mounts 唯一可用的驱动器。话虽这么说,我的问题变得像我问的那样没有意义......

感谢您的输入。

0 投票
3 回答
5161 浏览

ansible - Ansible:全局模板文件夹?

谷歌搜索找不到任何东西。

变量有group_vars/all/。模板有类似的东西吗?我想跨多个角色使用一些模板。

0 投票
1 回答
1589 浏览

ansible - 您如何使用 ansible 管理每个 env 配置文件?

我正在使用 ansible 安装 Apache,目前我httpd.conf在 ansible 存储库中有多个文件(test/dev/staging/production),除了一些特定于环境的设置外,大部分内容都是相同的。

是否可以使用一个httpd.conf模板文件,并在发送httpd.conf到远程服务器时修改文件?

0 投票
1 回答
9094 浏览

ansible - 在 Ansible 中获取 Jinja2 模板中列表的前“N”个元素

我的大多数位置都有 4 个以上的 DNS 源,但少数位置更少。每个位置都有自己的dns4_ips列表变量,如下所示:

我的 resolv.conf 模板如下所示:

Jinjafor循环效果很好,但在我有许多名称服务器的情况下,我宁愿只列出shuffle()返回的前 3 个。

我想到了这个:

...但是在某些情况下,我只有一个或两个 DNS 服务器可用,因此它们会产生不正确的行或错误,对吗?

有没有一种干净的方法可以用 for 循环来处理这个问题,还是我需要将三个名称服务器行包装在 中{% if (dns4_ips|shuffle(seed=inventory_hostname))[1] is defined %}

0 投票
1 回答
61 浏览

ansible - Ansible 的 Jinja 模板

我有一个对 sudoers 执行以下操作的模板:

我定义了变量:

我正在寻找一种可以遍历循环并,在 foo 之后添加的方法。所以当我运行 Ansible 时,它​​基本上看起来像这样:

我已经尝试了一些事情,比如join(",")在 Jinja2 语法中添加 a ,但所做的只是:

有人可以指出正确的方向来使它只是在末尾添加一个逗号foo吗?

0 投票
1 回答
479 浏览

ansible - 使用 Jinja2 模板返回组和组长度

我有一个 Ansible 库存文件,其中包含大约 20 个子组。我想返回孩子的名单,所以我开始:

接下来,如何在组旁边添加它的长度,逗号分隔?

我在想这样的事情会起作用,但它不会:

理想的输出是:

0 投票
1 回答
108 浏览

automation - 在 Ansible 的 get_uri 模块中注册此网页后设置事实或调试网页时出错

每次为注册网页设置事实时,我都会遇到问题,错误是:

u'redirected': False}]}: 模板化字符串时出现模板错误:1238 处的意外字符 u'&'

剧本如:

我的 ansible 版本是 ansible 2.2.1.0

那么,我的网页本身是否存在问题,是否有解决方案可以跳过此错误?

在排除故障后,我发现它失败是因为一行以

那么如何用这个字符跳过这一行呢?

0 投票
1 回答
4151 浏览

ansible - 如何从包含 YAML 的字符串中读取 Ansible 变量?

我有一个任务,它运行一个uri调用来获取一个包含 YAML 片段的 JSON 文件(它是从 Rancher API 获得的)。我可以使用以下任务提取 YAML 片段

当我运行 ansible 调试策略时,它表明我的docker_compose变量包含

对我来说,这看起来像是有效的 YAML。

因此,我想应该可以将该值解释为有效的 Ansible 变量。

但是我怎么能把它解释为一个变量呢?

我以后如何将该变量放回字符串中?

0 投票
1 回答
2705 浏览

ansible - 如何从 Ansible with_subelements 列表中对项目进行排序

with_subelements用来循环一些嵌套数据。我想循环嵌套元素,但在迭代时对第二级数据进行排序。

我尝试了一些方法来对列表进行排序,但我怀疑我正在使用with_subelements是否以应该使用的方式使用它。

我试过这个没有成功:

with_sorted_subelements如果不编写我自己的插件,这可能吗?