De exemplu, având în vedere fișierul și playbook-ul
shell> cat test.txt
XX
shell> cat playbook.yml
- gazde: localhost
sarcini:
- ansible.builtin.command:
cmd: cat test.txt
înregistrare: sync_status
până la: sync_status.stdout == 'SSUS'
sarcina va eșua
SARCINA [ansible.builtin.command] ******************************************** **
FAILED - REÎNCERCARE: ansible.builtin.command (au rămas 3 reîncercări).
FAILED - REÎNCERCARE: ansible.builtin.command (răman 2 reîncercări).
FAILED - REÎNCERCARE: ansible.builtin.command (a rămas 1 reîncercare).
fatal: [localhost]: FAILED! => schimbat=adevărat
încercări: 3
cmd:
- pisică
- test.txt
delta: '0:00:00.003479'
sfârșit: '2021-06-16 07:27:19.927499'
rc: 0
începe: '2021-06-16 07:27:19.924020'
stderr: ''
stderr_lines: <omis>
stdout: XX
stdout_lines: <omis>
Dar, dacă introduceți șirul „SSUS” în fișier înainte sau în timpul testării, sarcina va reuși, de ex.
SARCINA [ansible.builtin.command] ******************************************** **
FAILED - REÎNCERCARE: ansible.builtin.command (au rămas 3 reîncercări).
FAILED - REÎNCERCARE: ansible.builtin.command (răman 2 reîncercări).
schimbat: [localhost]
Potriviți parametrii la nevoile tale.
Î: "Dacă rezultatul are mai multe linii, va trebui să folosesc stdout_lines."
R: Testați prezența șirului în listă, de ex.
- ansible.builtin.command:
cmd: cat test.txt
înregistrare: sync_status
până la: „„SSUS” în sync_status.stdout_lines”