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

ansible - Ansible 模板中出现额外的空格

我正在生成配置文件,我希望它们能够缩进。我从一个 Jinja2 模板开始,该模板在从一个简单的 python 程序调用时正确呈现。当我从 ansible 调用它时,除了循环的第一行之外,我将得到 2 个额外的空格。生成 YAML 和 python 之类的东西真的很痛苦。我已采取将注释行作为 for 块的第一行来解决此问题...

这是一个非常简单的 YAML 生成器示例:

剧本调用:

模板部分:

渲染输出:

注意 dc is "pnp" 注释没有像模板中显示的那样缩进,但是 sgs、cst 和 dse 注释缩进了 2 个空格。ip 地址的所有数组行也是缩进的。正如 Jinja2 所描述的那样,我尝试了各种版本的将“-”添加到“%”的东西,但没有一个给出一致的正确结果。

其他人一定以前见过。我在 CentOS7 上运行 2.2.1.0。

0 投票
2 回答
39958 浏览

ansible - Ansible,set_fact 使用 if then else 语句

我正在尝试根据另一个变量在运行时使用 set_fact 在 Ansible 中设置一个变量。如果无论实际值是什么,都使用第一个值。这是我的代码示例:

l_envd不管是什么设置jm_env

0 投票
1 回答
9955 浏览

ansible - Ansible 模板模块不解析 with_items 变量

我正在使用一个简单的模板,其中只有变量。这是我的任务在我的剧本中的样子(实际上是我的剧本中使用的一个角色):

我将变量保存在 group_vars 中。in 中的任何变量file.conf.j2都将正确扩展,例如,{{ myrole_user }}但在扩展 with_items 变量之一时会失败,例如{{ myrole.applicationName }}.

我的 group_vars 看起来像这样:

这是 Ansible 错误:

"msg": "AnsibleUndefinedVariable: 'list object' 没有属性 'applicationName'"

0 投票
1 回答
90 浏览

ansible - 在ansible中解析表格数据

尝试将路由信息解析为类似下面的内容。什么是正确的做法

0 投票
1 回答
13741 浏览

ansible - 拆分变量在 Ansible 中不起作用

我正在尝试根据分隔符拆分变量。我怎样才能实现它?

我收到以下错误:

列表对象'没有属性'split ansible

我只想考虑变量的第一部分,即在'@'之前

0 投票
1 回答
3430 浏览

regex - Ansible:条件匹配整个单词

在有条件的情况下

changed_when: "'{{ my_var }}' not in users_list

我们如何强制 ansible 在搜索过程中匹配整个单词?

即假设:

my_var: admin

我希望任务仅在"admin"in时更改users_list而不是说"my_admin"

我试过了 changed_when: "'\b{{ my_var }}\b' not in users_list

似乎不起作用。

0 投票
1 回答
994 浏览

ansible - Jinja2/Ansible 比较模板中的 HostVars 值

我正在尝试hostvars在 Ansible Jinja 模板中比较 2 个基于清单文件的主机魔术变量的值。要求是基本上确保一个项目包含在结果模板输出中,只有当清单中的 2 个主机的 IP 地址不相同时。

我试过这样做:

然而,这失败了,Jinja/Ansible 吓坏了。有没有一种方法可以完成我想要做的事情,将hostvarsJinja 中的值与 Ansible 进行比较?

0 投票
1 回答
1640 浏览

localhost - 当主机操作是带有ansible的本地主机时,如何从组中排除本地主机

我必须使用 template.j2 列出文件中的所有服务器。目的是使用 ansible 库存文件生成一个最新的配置文件。所有文件都在 ansible 服务器上。我有一个 generate-projectconf.yml、一个 template.j2 和库存文件。问题是,使用我的方法,本地主机也在生成的文件中。我只想要库存文件中的 IP。

我的 yml 文件看起来像这样

模板.j2 文件

库存文件看起来像这样

要启动它,我执行命令

结果如下所示:

0 投票
1 回答
56 浏览

ansible - 是否可以在运行时定义一个 var 并使用它来访问另一个 var?

我不确定这是可能的。

我想在运行时定义一个 var 并使用它来访问另一个 var(在文件中定义,剧本..)。

  1. 在运行时定义:

    /li>
  2. 在剧本中定义:

    /li>

我需要解决与此类似的问题:

我尝试:

实际结果

任务路径:/home/nor/gitrepos/iiot-iac/ansible/myUnitTest.yml:19 致命:[node1]:失败!=> { "failed": true, "msg": "模板错误,而模板字符串:预期的令牌 ':',得到 '}'。字符串:{{ {{ typeConfig }}.url_config }} " } " }

0 投票
1 回答
2496 浏览

ansible - Ansible 模板中的值替换

我正在编写 Ansible 剧本,在模板中我需要替换一个变量,该变量是字典列表。

任务文件如下:

我需要替换locations模板中的。所以模板如下:

我期待的输出如下:

但是我很难让替换正确,任何人都可以帮助指出我在哪里犯了错误。

我得到的错误是