Files
Compose-Files/AnisiblePlaybooks/docker-healthcheck-audit/files/main.yml
T
2026-07-20 09:23:17 -04:00

52 lines
2.0 KiB
YAML

---
- name: Docker healthcheck audit
hosts: all
become: true
gather_facts: false
tasks:
- name: Collect Docker containers
community.docker.docker_host_info:
containers: true
register: docker_host_info
- name: Build list of containers missing healthcheck
ansible.builtin.set_fact:
containers_missing_healthcheck: "{{ (containers_missing_healthcheck | default([])) + [item.Names[0] | default(item.Id)] }}"
when:
- item.Config is defined
- item.Config.Healthcheck is not defined
loop: "{{ docker_host_info.containers | default([]) }}"
- name: Ensure missing-healthcheck list exists
ansible.builtin.set_fact:
containers_missing_healthcheck: []
when: containers_missing_healthcheck is not defined
- name: Build audit report
ansible.builtin.set_fact:
docker_healthcheck_audit_report:
checked_containers: "{{ docker_host_info.containers | default([]) | length }}"
missing_healthcheck_count: "{{ containers_missing_healthcheck | length }}"
missing_healthcheck_containers: "{{ containers_missing_healthcheck }}"
- name: Save healthcheck audit report
ansible.builtin.copy:
dest: "<< audit_report_path | default('/tmp/docker-healthcheck-audit.json') >>"
content: "{{ docker_healthcheck_audit_report | to_nice_json }}"
mode: "0640"
when: audit_save_report | default(true)
- name: Print audit summary
ansible.builtin.debug:
msg: >-
Checked {{ docker_healthcheck_audit_report.checked_containers }} containers,
found {{ docker_healthcheck_audit_report.missing_healthcheck_count }} without healthcheck.
- name: Fail when missing healthchecks are found
ansible.builtin.fail:
msg: "Containers missing healthcheck: {{ containers_missing_healthcheck | join(', ') }}"
when:
- audit_fail_on_missing | default(false)
- containers_missing_healthcheck | length > 0