Несколько условий и сравнение двух разных типов данных с использованием Ansible - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть переменная ansible, которая является словарным временем, и я хочу сравнить ее со строковой переменной или вводом через запятую.Ниже приведена пьеса, которую я пытаюсь скомпилировать, используя

- hosts: localhost
  gather_facts: false
  vars:
    cluster:
      name:
        - "raj"
        - "kiran"
        - "Pavan"
    inputcluster: 
      - "raj"
  tasks:
    # inner.yml
    - debug:
        msg: "outer item={{ outer_item.cluster.name }} "
      with_items:
        - cluster:
            name:
              - "raj"
              - "kiran"
              - "Pavan"
      loop_control:
        loop_var: outer_item
      when: 
        - inputcluster 
        - outer_item.cluster.name == inputcluster`

. Я хочу, чтобы оператор echo выводил только «raj», сравнивая строку со словарем.Как мне этого добиться?

1 Ответ

0 голосов
/ 14 ноября 2018

Я думаю, что вам нужно перебрать список имен, чтобы соответствовать ему, и чтобы перебрать два списка, вам нужен вложенный цикл.Это может сделать трюк.

- hosts: localhost
  gather_facts: false
  vars:
    cluster:
      name:
        - "raj"
        - "kiran"
        - "Pavan"
    inputcluster: 
      - "raj"
  tasks:
    # inner.yml
    - debug:
        msg: "outer item={{ item[1] }} "
      with_nested:
        - "{{ inputcluster }}"
        - "{{ cluster.name }}"            
      when: (item[0] == item[1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...