Я хотел бы использовать 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. Не удалось найти ожидаемый ключ»