Ansible-VMware Как перебрать задачу и указать значение ключа? - PullRequest
0 голосов
/ 12 июня 2019

Многие из модулей VMware для Ansible структурированы немного иначе, чем обычный модуль Ansible.То, с чем я сталкиваюсь, - это необходимость предоставления имени хоста или имени кластера модулю.Это плохо масштабируется, и я ищу способ перебрать набор хостов или даже кластеры из файла vars (модули VMware не используют обычный файл / etc / hosts) и предоставить этот хост илиимя кластера для модуля.В приведенном ниже коде я буду указывать имя хоста для «esxi_hostname».

Как видно из прокомментированного кода, я попробовал опцию with_items, которая не работает, потому что она недоступна для модуля.Я пробовал jinja следующим образом: 'esxi_hostname:' {% для хоста в хостах%} {{host}} {% endfor%}, а также "loop: '{{hosts}}'

---
- hosts: localhost
  vars_files:
    - credentials.yml
    - vars.yml
    - se1_hosts.yml

  tasks:
  - name: Manage Log level setting for an ESXi host
    vmware_host_config_manager:
      hostname: 'vcsa.host.se1.somewhere.com'
      username: '{{ vc_username }}'
      password: '{{ vc_pass }}'   
      esxi_hostname:  'hostname'
      # with_items: 
      #   - 'c05n06.esx.se1.csnzoo.com'
      # loop: '{{ hosts }}'
      validate_certs: False
      options:
          'Config.HostAgent.log.level': 'info'
    delegate_to: localhost

Я ожидаю, что смогу предоставить переменную esxi_hostname для выдачи, и я ищу способ сделать это с помощью цикла, чтобы он работал с host1, host2, host3 и т. Д.

Заранее спасибо!

1 Ответ

0 голосов
/ 17 июня 2019
Циклы

могут применяться к модулям (в данном случае к модулю vmware_host_config_manager), поэтому ключевое слово цикла должно иметь одинаковый уровень отступа:

- name: Manage Log level setting for an ESXi host
  vmware_host_config_manager:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    esxi_hostname: '{{ item }}'
    options:
        'Config.HostAgent.log.level': 'info'
  loop: "{{ groups['esxi'] }}"
  delegate_to: localhost
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...