Sono in esecuzione di un comando personalizzato, perché non ho trovato a fare quello che ho bisogno di un modulo di lavoro, e voglio regolare la bandiera changed
per riflettere il comportamento effettivo:Ansible e `changed_when` basa su` valore stdout`
- name: Remove unused images
shell: '[ -n "$(docker images -q -f dangling=true)" ] && docker rmi $(docker images -q -f dangling=true) || echo Ignoring failure...'
register: command_result
changed_when: "command_result.stdout == 'Ignoring failure...'"
- debug: var="1 {{ command_result.stdout }}"
when: "command_result.stdout != 'Ignoring failure...'"
- debug: var="2 {{ command_result.stdout }}"
when: "command_result.stdout == 'Ignoring failure...'"
(so che il comando di shell è brutto e potrebbe essere migliorata da uno script più complesso, ma io non voglio per ora)
l'esecuzione di questo compito su un host in cui nessuna immagine Docker può essere rimosso dà il seguente risultato:
TASK: [utils.dockercleaner | Remove unused images] ****************************
changed: [cloud-host] => {"changed": true, "cmd": "[ -n \"$(docker images -q -f dangling=true)\" ] && docker rmi $(docker images -q -f dangling=true) || echo Ignoring failure...", "delta": "0:00:00.064451", "end": "2015-07-30 18:37:25.620135", "rc": 0, "start": "2015-07-30 18:37:25.555684", "stderr": "", "stdout": "Ignoring failure...", "stdout_lines": ["Ignoring failure..."], "warnings": []}
TASK: [utils.dockercleaner | debug var="DIFFERENT {{ command_result.stdout }}"] ***
skipping: [cloud-host]
TASK: [utils.dockercleaner | debug var="EQUAL {{ command_result.stdout }}"] ***
ok: [cloud-host] => {
"var": {
"EQUAL Ignoring failure...": "EQUAL Ignoring failure..."
}
}
Quindi, ho questo valore di ritorno stdout "stdout": "Ignoring failure..."
e l'attività di debug mostra le stringhe sono uguali, quindi perché l'attività viene ancora visualizzata come "modificata"?
Sto usando ansible 1.9.1
.
La documentazione sto riferendosi a è questa: http://docs.ansible.com/ansible/playbooks_error_handling.html#overriding-the-changed-result
Mi sento così stupido ora ... Grazie mille! –