在变量ansible中使用条件句

在变量ansible中使用条件句,ansible,Ansible,我们可以在剧本的“vars:”部分使用条件句吗?我知道任务中有set_事实,但我想知道我们可以在下面的部分中使用: --- - hosts: "{{ host1 }}" vars: var1: "{{ passed_var1 }}" var2: "<conditionally assign value based on {{ var1 }}" --- -主机:“{host1}” 变量: var1:“{{passed_var1}}” var2:“您可以执行以下操作: ---

我们可以在剧本的“vars:”部分使用条件句吗?我知道任务中有set_事实,但我想知道我们可以在下面的部分中使用:

---
- hosts: "{{ host1 }}"
  vars:
   var1: "{{ passed_var1 }}"
   var2: "<conditionally assign value based on {{ var1 }}"
---
-主机:“{host1}”
变量:
var1:“{{passed_var1}}”

var2:“您可以执行以下操作:

---
- name: Test Play
  hosts: local
  gather_facts: false

  vars: 
    var1: hola
    var2: "{{ 'foo' if var1 else '' }}"

  tasks:
    - name: debug var1
      debug:
        var: var1

    - name: debug var2
      debug:
        var: var2
您将获得:

PLAY [Test Play] ***************************************************************

TASK [debug1] ******************************************************************
ok: [localhost] => {
    "var1": "hola"
}

TASK [debug1] ******************************************************************
ok: [localhost] => {
    "var2": "foo"
}
另一个例子:

---
- name: Test Play
  hosts: local
  gather_facts: false

  vars: 
    var1: hola
    var2: "{{ 'foo' if var1 == 'hola' else '' }}"

  tasks:
    - name: debug var1
      debug:
        var: var1

    - name: debug var2
      debug:
        var: var2

您可以执行以下操作:

---
- name: Test Play
  hosts: local
  gather_facts: false

  vars: 
    var1: hola
    var2: "{{ 'foo' if var1 else '' }}"

  tasks:
    - name: debug var1
      debug:
        var: var1

    - name: debug var2
      debug:
        var: var2
您将获得:

PLAY [Test Play] ***************************************************************

TASK [debug1] ******************************************************************
ok: [localhost] => {
    "var1": "hola"
}

TASK [debug1] ******************************************************************
ok: [localhost] => {
    "var2": "foo"
}
另一个例子:

---
- name: Test Play
  hosts: local
  gather_facts: false

  vars: 
    var1: hola
    var2: "{{ 'foo' if var1 == 'hola' else '' }}"

  tasks:
    - name: debug var1
      debug:
        var: var1

    - name: debug var2
      debug:
        var: var2

这正是我想要的这正是我想要的