|
75 | 75 | ansible.builtin.set_fact: |
76 | 76 | audit_data: "{{ audit_script.stdout | from_json }}" |
77 | 77 |
|
78 | | - - name: Create audit output directory |
| 78 | + - name: Create audit output directory # noqa: run-once[task] |
79 | 79 | ansible.builtin.file: |
80 | 80 | path: "{{ patch_audit_dir }}" |
81 | 81 | state: directory |
|
131 | 131 | - host_info | length > 0 |
132 | 132 | - host_info.type == 'qm' |
133 | 133 | register: qm_snap |
| 134 | + changed_when: qm_snap.rc == 0 |
134 | 135 |
|
135 | 136 | - name: Take LXC snapshot (pct) |
136 | 137 | ansible.builtin.command: |
|
141 | 142 | - host_info | length > 0 |
142 | 143 | - host_info.type == 'pct' |
143 | 144 | register: pct_snap |
| 145 | + changed_when: pct_snap.rc == 0 |
144 | 146 |
|
145 | 147 | - name: Verify snapshot exists |
146 | 148 | ansible.builtin.command: |
|
240 | 242 | tasks: |
241 | 243 | - name: Check disk usage |
242 | 244 | ansible.builtin.shell: |
243 | | - cmd: "df -h / | awk 'NR==2 {print $5}' | tr -d '%'" |
| 245 | + cmd: "set -o pipefail; df -h / | awk 'NR==2 {print $5}' | tr -d '%'" |
| 246 | + executable: /bin/bash |
244 | 247 | register: disk_pct |
245 | 248 | changed_when: false |
246 | 249 |
|
|
304 | 307 | ansible.builtin.set_fact: |
305 | 308 | smoke_all_passed: "{{ (svc_checks | rejectattr('passed') | list | length == 0) and (failed_units.stdout_lines | default([]) | length == 0) and (disk_pct.stdout | int <= 90) }}" |
306 | 309 |
|
307 | | - - name: Create smoke results directory |
| 310 | + - name: Create smoke results directory # noqa: run-once[task] |
308 | 311 | ansible.builtin.file: |
309 | 312 | path: "{{ smoke_results_dir }}" |
310 | 313 | state: directory |
|
314 | 317 | run_once: true |
315 | 318 |
|
316 | 319 | - name: Write smoke results |
| 320 | + vars: |
| 321 | + smoke_report: |
| 322 | + host: "{{ inventory_hostname }}" |
| 323 | + date: "{{ smoke_date }}" |
| 324 | + disk_pct: "{{ disk_pct.stdout | int }}" |
| 325 | + failed_units: "{{ failed_units.stdout_lines | default([]) }}" |
| 326 | + service_checks: "{{ svc_checks }}" |
| 327 | + all_passed: "{{ smoke_all_passed }}" |
317 | 328 | ansible.builtin.copy: |
318 | | - content: "{{ {'host': inventory_hostname, 'date': smoke_date, 'disk_pct': disk_pct.stdout | int, 'failed_units': failed_units.stdout_lines | default([]), 'service_checks': svc_checks, 'all_passed': smoke_all_passed} | to_nice_json }}" |
| 329 | + content: "{{ smoke_report | to_nice_json }}" |
319 | 330 | dest: "{{ smoke_results_dir }}/{{ inventory_hostname }}-{{ smoke_date }}.json" |
320 | 331 | mode: "0644" |
321 | 332 | delegate_to: localhost |
|
373 | 384 | cmd: "{{ host_info.type }} stop {{ host_info.vmid }}" |
374 | 385 | delegate_to: "{{ host_info.pve_host }}" |
375 | 386 | become: true |
| 387 | + changed_when: true |
376 | 388 |
|
377 | 389 | - name: Wait for guest to stop |
378 | 390 | ansible.builtin.pause: |
|
383 | 395 | cmd: "{{ host_info.type }} rollback {{ host_info.vmid }} {{ snapshot_name }}" |
384 | 396 | delegate_to: "{{ host_info.pve_host }}" |
385 | 397 | become: true |
| 398 | + changed_when: true |
386 | 399 |
|
387 | 400 | - name: Start guest |
388 | 401 | ansible.builtin.command: |
389 | 402 | cmd: "{{ host_info.type }} start {{ host_info.vmid }}" |
390 | 403 | delegate_to: "{{ host_info.pve_host }}" |
391 | 404 | become: true |
| 405 | + changed_when: true |
392 | 406 |
|
393 | 407 | - name: Wait for SSH to come back |
394 | 408 | ansible.builtin.wait_for_connection: |
|
0 commit comments