Ich arbeite an der Automatisierung einer Aufgabe, die die neueste Version der Software an eine Datei anhängen muss. Ich möchte es nicht mehrmals für die gleiche Version machen.Auswertung des Rückgabecodes in ansible Bedingung
Es befindet sich auf der folgenden Beispieldatei aussieht:
var software releases = new Array(
"4.3.0",
"4.4.0",
"4.5.0",
"4.7.0",
"4.8.0",
"4.11.0",
"4.12.1",
"4.14.0",
"4.15.0",
"4.16.0",
);
die Standardwerte main.yml in so etwas wie
VERSION: 4.16.2
Code
- name: register version check
shell: cat /root/versions.js | grep -q {{VERSION}}
register: current_version
- debug: msg="The registered variable output is {{ current_version.rc }}"
- name: append to versions.js
lineinfile:
dest: /root/versions.js
regexp: '^\);'
insertbefore: '^#\);'
line: " \"{{VERSION}}\",\n);"
owner: root
state: present
when: current_version.rc == 1
Problem passieren würde: die Debug-Nachricht ist Bewertung current_version.rc und zeigt mir boolesche Werte auf der Basis der Grep-Befehle Ausgabe, aber ich kann nicht re Verwenden Sie dies in der when
Bedingung, um festzustellen, ob die Aufgabe ausgeführt werden soll.
Edit: die Ausgabe:
PLAY [localhost] **************************************************************
GATHERING FACTS ***************************************************************
ok: [localhost]
TASK: [test | register version check] *****************************************
failed: [localhost] => {"changed": true, "cmd": "cat /root/versions.js | grep -q 3.19.2", "delta": "0:00:00.003570", "end": "2015-12-17 00:24:49.729078", "rc": 1, "start": "2015-12-17 00:24:49.725508", "warnings": []}
FATAL: all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit @/root/site.retry
localhost : ok=1 changed=0 unreachable=0 failed=1
Können Sie den Ausgang des Spiels veröffentlichen? – ydaetskcoR
Sie gelangen nicht zur when-Anweisung, weil der Rückkehrcode 1 ist. Fügen Sie 'ignore_errors: True' hinzu. – nikobelia
Nikobelia - das hat mein Problem gelöst! Fühlen Sie sich frei, dies zu beantworten, damit ich es markieren kann, wenn Sie möchten. Vielen Dank. – Bryan