【问题标题】:use conditionals in vars ansible [duplicate]在vars ansible中使用条件[重复]
【发布时间】:2018-04-21 20:08:34
【问题描述】:

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

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

【问题讨论】:

    标签: ansible


    【解决方案1】:

    你可以这样做:

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

    【讨论】:

    • 这正是我想要的
    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多