Ansible 与jinja模板兼容。条件if
我正在测试我的第一个jinja2模板,但我不明白为什么它返回5:5,而不是Ansible 与jinja模板兼容。条件if,ansible,jinja2,Ansible,Jinja2,我正在测试我的第一个jinja2模板,但我不明白为什么它返回5:5,而不是“VarVoid”:“5” 当我启动时: ansible playbook test-valuenull.yml-e VarVoid= 返回: 但如果我发射 ansible playbook test-valuenull.yml-e VarVoid=5 返回: 而不是“VarVoid”:“5” 如何使其不解释arg变量? 在哪里可以找到理解如何在ansible中使用jinja2的文档。 我在上找到的是非常基本的使用过滤器。
“VarVoid”:“5”
当我启动时:
ansible playbook test-valuenull.yml-e VarVoid=
返回:
但如果我发射
ansible playbook test-valuenull.yml-e VarVoid=5
返回:
而不是“VarVoid”:“5”
如何使其不解释arg变量?
在哪里可以找到理解如何在ansible中使用jinja2的文档。
我在上找到的是非常基本的使用过滤器。例如,剧本
shell>cat playbook.yml
-主机:本地主机
任务:
-设定事实:
salida:{(VarVoid |默认值('')|长度>0)|
三元({'var':VarVoid},
{'msg':'VarVoid se Encuntera Vacia'}}}”
-调试:
变种:萨利达
给予
shell>ansible playbook playbook.yml-e“VarVoid=5”
“萨利达”:{
“变量”:“5”
}
shell>ansible playbook playbook.yml
“萨利达”:{
“味精”:“VarVoid se Encuntera Vacia”
}
问题1。 没有自由形式的自由贸易。如果没有提示,默认消息是“Hello world!”
shell>cat playbook.yml
-主机:本地主机
任务:
-调试:“{salida}”
给予
shell>ansible playbook playbook.yml-e“salida=5”
“msg”:“你好,世界!”
问题2
字典
result={'var':VarVoid}
不能给出预期的结果
“VarVoid”:“5”
debug:“{{salida}}”
给出了“msg”:“你好,世界!”
。这个故事是错误的。对我来说,它返回的是Ansible的版本是什么?请参阅“ansible--version”。ansible 2.9.9 python version=2.7.5(默认值,2020年4月2日,13:16:51)[GCC 4.8.5 20150623(Red Hat 4.8.5-39)],但``-name:Prueba de volcado var debug:var=VarVoid``return“VarVoid”:“5”
感谢您的时间。在哪里可以找到好的文档或书籍?
---
- hosts: localhost
user: user1
become_user: yes
gather_facts: False
tasks:
- name: Prueba de volcado msg con lineas
debug:
msg: "OK"
- name: Prueba de volcado var con lineas
debug:
var: VarVoid
- name: definiendo la extructura
set_fact:
salida: >-
{%- set results = [] -%}
{%- if (VarVoid == '') -%}
{%- set result = { "msg": "VarVoid se encuentra Vacia" } -%}
{%- endif -%}
{%- if (VarVoid != '') -%}
{%- set result = { 'var': VarVoid } -%}
{%- endif -%}
{{ result }}
- name: Con plantilla.
debug: "{{ salida }}"
TASK [definiendo la extructura] *****************************************************************************************************************************************************************************
ok: [localhost]
[WARNING]: Using a variable for a task's 'args' is unsafe in some situations (see https://docs.ansible.com/ansible/devel/reference_appendices/faq.html#argsplat-unsafe)
TASK [Con plantilla.] ***************************************************************************************************************************************************************************************
ok: [localhost] => {
"msg": "VarVoid se encuentra Vacia"
TASK [definiendo la extructura] *****************************************************************************************************************************************************************************
ok: [localhost]
[WARNING]: Using a variable for a task's 'args' is unsafe in some situations (see https://docs.ansible.com/ansible/devel/reference_appendices/faq.html#argsplat-unsafe)
TASK [Con plantilla.] ***************************************************************************************************************************************************************************************
ok: [localhost] => {
"5": "5"
}