Loop несколько переменных с loop_var Ansible - PullRequest
0 голосов
/ 05 декабря 2018

Мне нужно иметь цикл внутри модуля URI, который одновременно выполняет задачу за один раз.Я пробовал что-то вроде приведенного ниже примера, но он не работает, так как будет учитываться только последнее значение:

- uri:
      method: PATCH
      url: https://10.10.10.10/api/xyz
      status_code: 200, 201
      force_basic_auth: yes
      user: user
      password: pass
      return_content: yes
      validate_certs: no
      body_format: "json"
      body:
       replace:
         data:
              - enabled: "{{ x.enabled }}"
                if_name: "{{ x.name }}"
              - enabled: "{{ y.enabled }}"
                if_name: "{{ y.name }}"
  loop: "{{ vm.params | default([]) | flatten(levels=1) }}"
  loop_control:
       loop_var: x
       loop_var: y

Есть ли способ достичь этого с помощью loop, loop_control и loop_var или использовать его совместнос другими модулями, которые не будут устаревшими в будущем?

1 Ответ

0 голосов
/ 05 декабря 2018
site.yml -
---
- hosts: 
  tasks:
    - include_tasks: main.yml
      with_items: 
        - "{{  vm.params | default([]) | flatten(levels=1)  }}"
      loop_control:
        loop_var: x

main.yml -
---
- uri:
      method: PATCH
      url: https://10.10.10.10/api/xyz
      status_code: 200, 201
      force_basic_auth: yes
      user: user
      password: pass
      return_content: yes
      validate_certs: no
      body_format: "json"
      body:
       replace:
         data:
              - enabled: "{{ x.enabled }}"
                if_name: "{{ x.name }}"

I'm not using the 'y' variable in here as that is not possible based on the code you put on.
...