Loops e condições ansíveis com matrizes

1

Eu quero ser capaz de controlar o comportamento de um módulo, especificando uma condição changed_when. Isso funciona bem ao executar uma tarefa simples como a dos documentos:

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

O problema surge quando eu começo a usar loops. Não consigo descobrir como acessar stderr, stdout, rc resulta da iteração atual de um loop. Por exemplo:

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

Todos os resultados vão para aptly_output.results , mas como acesso o resultado da iteração atual?

    
por EvilTorbalan 09.12.2015 / 15:41

1 resposta

0

Em uma de nossas funções, fazemos isso:

- 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

Acho que isso também deve funcionar para o seu caso de uso.

    
por 09.12.2015 / 16:53