ansible список итераций в dict - PullRequest
0 голосов
/ 21 марта 2020

Я хотел бы использовать al oop для просмотра списка в словаре. Вот книга, с которой я работаю ansible -awx:

- name: show hba info
  hosts: localhost
  gather_facts: yes

  tasks:
#### Function to obtain cluter list in DATACENTER
    - name: Gather datacenter info from given vcenter
      vmware_cluster_info:
        hostname: '{{ lookup("env", "VMWARE_HOST") }}'
        username: '{{ lookup("env", "VMWARE_USER") }}'
        password: '{{ lookup("env", "VMWARE_PASSWORD") }}'
        datacenter: XXXXXXX
        validate_certs: no
      delegate_to: localhost
      register: datacenter_info

    - set_fact:
       vcenter_clusters: "{{ datacenter_info.clusters.keys()  | regex_replace('^dict_keys','') |  regex_replace('\\(','') | regex_replace('\\)','') }}"

    - set_fact:
       Number_of_elements: "{{ vcenter_clusters|length }}"

#### Function to obtain ESXI in each clusters      
    - name: Gather cluster info from given datacenter
      vmware_host_service_info:
        hostname: '{{ lookup("env", "VMWARE_HOST") }}'
        username: '{{ lookup("env", "VMWARE_USER") }}'
        password: '{{ lookup("env", "VMWARE_PASSWORD") }}'
        cluster_name: "{{ item }}"
        validate_certs: no
      delegate_to: localhost
      register: cluster_info
      with_items: "{{ vcenter_clusters }}"
      when: item != "exclude_clusters"
      ignore_errors: yes

#### i need to create a new var with just esxi names contained in cluster_info var
    - set_fact:
        vcenter_clusters_esxi: "{{ cluster_info.results[1].host_service_info.keys() | regex_replace('^dict_keys','') |  regex_replace('\\(','') | regex_replace('\\)','') }}"
      with_sequence: start=1 end="{{ Number_of_elements }}"

Я хотел бы использовать "{{item}}" следующим образом: cluster_info.results ["{{item}}"] .host_service_info.keys (), но у меня есть ошибка «ОШИБКА! Синтаксическая ошибка при загрузке YAML. Не удалось найти ожидаемый ключ»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...