Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 如果else失败,则ansible set_事实_If Statement_Ansible - Fatal编程技术网

If statement 如果else失败,则ansible set_事实

If statement 如果else失败,则ansible set_事实,if-statement,ansible,If Statement,Ansible,我试图使用if-else根据条件设置_事实值,下面是我用于if-else条件的语法 - name: set the server details set_fact: ad_server: "{{ '{{ server.westeurope }}' if ('{{ ansible_local.vdc.location }}' == 'westeurope') else '{{ server.eastus2 }}' }}" ad_server_ip: "{% if'{{ ansi

我试图使用if-else根据条件设置_事实值,下面是我用于if-else条件的语法

- name: set the server details
  set_fact:
    ad_server: "{{ '{{ server.westeurope }}' if ('{{ ansible_local.vdc.location }}' == 'westeurope') else '{{ server.eastus2 }}' }}"
    ad_server_ip: "{% if'{{ ansible_local.vdc.location }}'=='westeurope' %}{{ server_ip.westeurope }}{% else %}{{ server_ip.eastus2 }}{% endif %}"

- debug:
    msg: "{{ ansible_local.vdc.location }},{{ ansible_local.vdc.binaryrepo_url }},{{ ad_server }},{{ ad_server_ip }}"
我已经声明了我的变量部分,详细信息如下所述:

server:
  westeurope: WIN030123
  eastus2: WIN100270
server_ip:
  westeurope: 10.x.x.x
  eastus2: 10.x.x.x
我的if-else条件无法获取if语句的值,并且总是获取else条件的值。有人能为我提供这种情况的正确语法吗。

使用Jinja2:

使用Jinja2:


使用Jinja2,可以使用不同类型的标记来定义逻辑和变量扩展

因此,如果您想在同一行上执行逻辑(分支)和变量扩展,就像您的第一个事实设置一样,它将是:

    ad_server: "{% if ansible_local.vdc.location == 'westeurope' %}{{ server.westeurope }}{% else %}{{ server.eastus2 }}{% endif %}"

请试一试

使用Jinja2有不同类型的标记来定义逻辑和变量扩展,并且:

因此,如果您想在同一行上执行逻辑(分支)和变量扩展,就像您的第一个事实设置一样,它将是:

    ad_server: "{% if ansible_local.vdc.location == 'westeurope' %}{{ server.westeurope }}{% else %}{{ server.eastus2 }}{% endif %}"

请试一试

请正确设置问题格式我更新了正确的格式请正确设置问题格式我更新了正确的格式谢谢@konstantin..真的很有效..我把问题弄复杂了.太好了!。这对我也很有用。这和巴斯提供的答案有什么区别?首选哪种方法?谢谢@konstantin。真的很有效。我把它弄复杂了。太好了!。这对我也很有用。这和巴斯提供的答案有什么区别?首选哪种方法?太好了!。我们如何在多行中完成这项工作?太好了!。我们如何在多行中执行此操作?