问题标签 [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 模板中出现额外的空格
我正在生成配置文件,我希望它们能够缩进。我从一个 Jinja2 模板开始,该模板在从一个简单的 python 程序调用时正确呈现。当我从 ansible 调用它时,除了循环的第一行之外,我将得到 2 个额外的空格。生成 YAML 和 python 之类的东西真的很痛苦。我已采取将注释行作为 for 块的第一行来解决此问题...
这是一个非常简单的 YAML 生成器示例:
剧本调用:
模板部分:
渲染输出:
注意 dc is "pnp" 注释没有像模板中显示的那样缩进,但是 sgs、cst 和 dse 注释缩进了 2 个空格。ip 地址的所有数组行也是缩进的。正如 Jinja2 所描述的那样,我尝试了各种版本的将“-”添加到“%”的东西,但没有一个给出一致的正确结果。
其他人一定以前见过。我在 CentOS7 上运行 2.2.1.0。
ansible - Ansible,set_fact 使用 if then else 语句
我正在尝试根据另一个变量在运行时使用 set_fact 在 Ansible 中设置一个变量。如果无论实际值是什么,都使用第一个值。这是我的代码示例:
l_env
d
不管是什么设置jm_env
。
ansible - Ansible 模板模块不解析 with_items 变量
我正在使用一个简单的模板,其中只有变量。这是我的任务在我的剧本中的样子(实际上是我的剧本中使用的一个角色):
我将变量保存在 group_vars 中。in 中的任何变量file.conf.j2
都将正确扩展,例如,{{ myrole_user }}
但在扩展 with_items 变量之一时会失败,例如{{ myrole.applicationName }}
.
我的 group_vars 看起来像这样:
这是 Ansible 错误:
"msg": "AnsibleUndefinedVariable: 'list object' 没有属性 'applicationName'"
ansible - 在ansible中解析表格数据
尝试将路由信息解析为类似下面的内容。什么是正确的做法
ansible - 拆分变量在 Ansible 中不起作用
我正在尝试根据分隔符拆分变量。我怎样才能实现它?
我收到以下错误:
列表对象'没有属性'split ansible
我只想考虑变量的第一部分,即在'@'之前
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
。
似乎不起作用。
ansible - Jinja2/Ansible 比较模板中的 HostVars 值
我正在尝试hostvars
在 Ansible Jinja 模板中比较 2 个基于清单文件的主机魔术变量的值。要求是基本上确保一个项目包含在结果模板输出中,只有当清单中的 2 个主机的 IP 地址不相同时。
我试过这样做:
然而,这失败了,Jinja/Ansible 吓坏了。有没有一种方法可以完成我想要做的事情,将hostvars
Jinja 中的值与 Ansible 进行比较?
localhost - 当主机操作是带有ansible的本地主机时,如何从组中排除本地主机
我必须使用 template.j2 列出文件中的所有服务器。目的是使用 ansible 库存文件生成一个最新的配置文件。所有文件都在 ansible 服务器上。我有一个 generate-projectconf.yml、一个 template.j2 和库存文件。问题是,使用我的方法,本地主机也在生成的文件中。我只想要库存文件中的 IP。
我的 yml 文件看起来像这样
模板.j2 文件
库存文件看起来像这样
要启动它,我执行命令
结果如下所示:
ansible - 是否可以在运行时定义一个 var 并使用它来访问另一个 var?
我不确定这是可能的。
我想在运行时定义一个 var 并使用它来访问另一个 var(在文件中定义,剧本..)。
在运行时定义:
/li>在剧本中定义:
/li>
我需要解决与此类似的问题:
我尝试:
实际结果
任务路径:/home/nor/gitrepos/iiot-iac/ansible/myUnitTest.yml:19 致命:[node1]:失败!=> { "failed": true, "msg": "模板错误,而模板字符串:预期的令牌 ':',得到 '}'。字符串:{{ {{ typeConfig }}.url_config }} " } " }
ansible - Ansible 模板中的值替换
我正在编写 Ansible 剧本,在模板中我需要替换一个变量,该变量是字典列表。
任务文件如下:
我需要替换locations
模板中的。所以模板如下:
我期待的输出如下:
但是我很难让替换正确,任何人都可以帮助指出我在哪里犯了错误。
我得到的错误是