Ansible looping - PullRequest
       9

Ansible looping

1 голос
/ 26 апреля 2019

У меня есть следующие переменные:

vars:
  rows:
    - alpha
    - beta
    - gamma
  cols:
    - one
    - two
    - three

Я выяснил, как (с помощью этого сайта) использовать обратные ссылки и как объединить декартово произведение, что я делаю в другихзадач, но теперь мне нужно сделать «двойной цикл», который в итоге даст мне следующую последовательность элементов для работы:

Start -> alpha-one -> alpha-two -> alpha-three
Start -> beta-one -> beta-two -> beta-three
Start -> gamma-one -> gamma-two -> gamma-three

(стрелки приведены только для иллюстрации.)

Я могу получить строку 'Start', используя фильтр default, и я понимаю, как можно использовать как базовые циклы, так и include_tasks, но я не понимаю, как "перезапустить" внутренний цикл в Ansible иликак зациклить внутри цикла.

1 Ответ

0 голосов
/ 26 апреля 2019

обновленный ответ (надеюсь, я все понял :)):

я бы использовал include_tasks, который будет повторять список rows, и во включенном файле задач,у меня было бы 1 задание для «запуска» и второе задание с циклом для списка cols:

PB:

---
- hosts: localhost
  gather_facts: false
  vars:
    rows:
    - alpha
    - beta
    - gamma
    cols:
    - one
    - two
    - three

  tasks:
  - name: Loop include tasks
    include_tasks: test2.yml
    with_items:
    - "{{ rows }}"
    loop_control:
      loop_var: rowsval

test2.yml:

---
- name: Start task
  debug:
    msg: "Start iteration"

- name: Loop task
  debug:
    msg: "processing now: {{ rowsval }} with: {{ item }}"
  with_items:
  - "{{ cols }}"

надеюсь, это поможет.

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