【问题标题】:Ansible default filterAnsible 默认过滤器
【发布时间】:2019-01-09 12:51:52
【问题描述】:

如何强制默认过滤器尝试查找变量的值,直到找不到值?

在我的代码中{{netplanadditionalip4 | default('netplanadditionalip3') }}" print netplanadditionalip3 如果没有变量,但我需要默认过滤器尝试 netplanadditionalip2 netplanadditionalip1 等,可以吗?

- name: debug1
  debug:
    msg: "{{netplanadditionalip1 | default ('ansible_host')}}"

- name: debug2
  debug:
    msg: "{{netplanadditionalip2 | default('netplanadditionalip1') }}"

- name: debug3
  debug:
    msg: "{{netplanadditionalip3 | default('netplanadditionalip2') }}"

- name: debug4
  debug:
    msg: "{{netplanadditionalip4 | default('netplanadditionalip3') }}"

【问题讨论】:

  • 所以您想先用netplanadditionalip3 进行测试,然后如果前一个不起作用,则依次测试netplanadditionalip2netplanadditionalip1
  • 是的,你是对的!

标签: python ansible yaml


【解决方案1】:

类似的东西呢:

---
- name: Default Filter Sequence
  hosts: localhost
  connection: local
  gather_facts: true

  vars:

    netplanadditionalip1: 10.100.10.1
    netplanadditionalip2: 10.100.10.2
    netplanadditionalip3: 10.100.10.3

  tasks:

  - name: Fact of Ansible Host
    set_fact:
      my_host: "{{ ansible_host | default () }}"

  - name: debug1
    debug:
      msg: "{{ netplanadditionalip1 | default(my_host) }}"

  - name: debug2
    debug:
      msg: "{{ netplanadditionalip2 | default(item) }}"
    with_items:
      - "{{ netplanadditionalip1 | default( my_host ) }}"

  - name: debug3
    debug:
      msg: "{{ netplanadditionalip3 | default(item) }}"
    with_items:
      - "{{ netplanadditionalip2 | default( netplanadditionalip1 ) | default( my_host ) }}"

  - name: debug4
    debug:
      msg: "{{ netplanadditionalip4 | default(item) }}"
    with_items:
      - "{{ netplanadditionalip3 | default( netplanadditionalip2 ) | default( netplanadditionalip1 ) | default( my_host ) }}"

【讨论】:

  • 非常感谢你,你帮助了我。我只是做了一些没有 set_fact {{ netplanadditionalip5 | default(netplanadditionalip4) | default( netplanadditionalip3 ) | default( netplanadditionalip2 ) | default( netplanadditionalip1 ) | default( ansible_host )}} 的默认过滤器
  • 因为Thanks for the feedback! Votes cast by those with less than 15 reputation are recorded, but do not change the publicly displayed post score.不能投票
猜你喜欢
  • 2012-10-15
  • 2012-05-03
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 2015-06-10
  • 2019-01-05
  • 1970-01-01
相关资源
最近更新 更多