Ansible циклы и условия с массивами

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

- command: some command
  register: command_result
  changed_when: "command_result.rc != 2"

Проблема возникает, когда я начинаю использовать циклы. Я не могу понять, как получить доступ к результатам stderr, stdout, rc из текущей итерации цикла. Например:

- command: aptly mirror update some-mirror
  register: aptly_output
  changed_when: "?item?.stdout | search('Download queue: 0 items')"

Все результаты идут в aptly_output.results , но как мне получить доступ к результату текущей итерации?

1
задан 21 August 2016 в 20:51
1 ответ

В одной из наших ролей мы делаем так:

- name: themes | activate
  command: "wp-cli --allow-root --no-color --path='{{ item.0.path }}' theme activate {{ item.1.name }}"
  register: check_activate_theme
  changed_when: "'Success: Switched to' in check_activate_theme.stdout"
  with_subelements:
    - wordpress_installs
    - themes
  when: item.1.name and item.1.activate | default(false)
  tags:
    - wordpress-themes-activate-theme

Я думаю, что это также должно сработать и для вашего случая использования.

0
ответ дан 4 December 2019 в 06:47

Теги

Похожие вопросы