Ansible 与jinja模板兼容。条件if

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的文档。 我在上找到的是非常基本的使用过滤器。

我正在测试我的第一个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的文档。 我在上找到的是非常基本的

使用过滤器。例如,剧本

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"
}