use conditionals in vars ansible [duplicate]

十年热恋 提交于 2020-02-25 09:45:46

问题


Can we use conditionals in "vars:" section of a playbook, I am aware of set_fact in tasks ,but I want to know we could use in section like below:

---
- hosts: "{{ host1 }}"
  vars:
   var1: "{{ passed_var1 }}"
   var2: "<conditionally assign value based on {{ var1 }}"

回答1:


You can do something like:

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

You will get:

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

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

TASK [debug1] ******************************************************************
ok: [localhost] => {
    "var2": "foo"
}

Another Example:

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


来源:https://stackoverflow.com/questions/49959811/use-conditionals-in-vars-ansible

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!