You've already forked RekomenciBackend
44df678c82
Signed-off-by: ITQ <itq.dev@ya.ru>
61 lines
2.0 KiB
YAML
61 lines
2.0 KiB
YAML
---
|
|
- name: Post-deployment validation and health checks
|
|
hosts: servers
|
|
gather_facts: true
|
|
become: false
|
|
serial: "100%"
|
|
|
|
tasks:
|
|
- name: Verify SSH connectivity on custom port
|
|
ansible.builtin.wait_for:
|
|
port: "{{ security_ssh_port | default(22) }}"
|
|
host: "{{ ansible_host | default(inventory_hostname) }}"
|
|
timeout: 60
|
|
delay: 5
|
|
state: started
|
|
tags: validation, networking
|
|
|
|
- name: Check critical system services
|
|
ansible.builtin.systemd:
|
|
name: "{{ item }}"
|
|
state: started
|
|
enabled: true
|
|
loop:
|
|
- ssh
|
|
- docker
|
|
- fail2ban
|
|
- nftables
|
|
tags: validation
|
|
ignore_errors: true
|
|
|
|
- name: Run comprehensive system health checks
|
|
block:
|
|
- name: Set root mount fact
|
|
ansible.builtin.set_fact:
|
|
root_mount: "{{ ansible_mounts | selectattr('mount', 'equalto', '/') | list | first }}"
|
|
tags: validation, health
|
|
|
|
- name: Check load average
|
|
ansible.builtin.shell: cat /proc/loadavg | awk '{print $1}'
|
|
register: load_avg
|
|
changed_when: false
|
|
|
|
- name: Check Docker status
|
|
ansible.builtin.shell:
|
|
cmd: docker info >/dev/null 2>&1 && echo "healthy" || echo "unhealthy"
|
|
register: docker_status
|
|
changed_when: false
|
|
ignore_errors: true
|
|
|
|
- name: Display comprehensive health status
|
|
ansible.builtin.debug:
|
|
msg:
|
|
- "Health check results for {{ inventory_hostname }}:"
|
|
- "Disk usage: {{ ((root_mount.size_total - root_mount.size_available) / root_mount.size_total * 100) | round(2) }}%"
|
|
- "Memory usage: {{ ((ansible_memtotal_mb - ansible_memfree_mb) / ansible_memtotal_mb * 100) | round(2) }}%"
|
|
- "Load average (1m): {{ load_avg.stdout }}"
|
|
- "Docker: {{ docker_status.stdout }}"
|
|
tags: always, health
|
|
|
|
tags: validation, health
|