- Переименован пресет geop.yml в cod.yml - Обновлены все группы с geop на cod - Добавлена поддержка ARM64 для Astra Linux и RedOS - Создан Dockerfile.arm64 для RedOS с исправлением конфликтов пакетов - Улучшены разделители в логах Molecule - Зашифрован файл vault/secrets.yml - Обновлена роль devops с поддержкой vault - Добавлены шаблоны для SSH и sudoers конфигураций
150 lines
6.3 KiB
YAML
150 lines
6.3 KiB
YAML
---
|
|
# =============================================================================
|
|
# VERIFY - Проверка тестовых инстансов
|
|
# =============================================================================
|
|
- hosts: localhost
|
|
gather_facts: false
|
|
vars:
|
|
# Получаем preset из переменной окружения или используем default
|
|
preset_name: "{{ lookup('env', 'MOLECULE_PRESET') | default('default') }}"
|
|
preset_file: "/workspace/molecule/presets/{{ preset_name }}.yml"
|
|
|
|
# Fallback значения если preset файл не найден
|
|
docker_network: labnet
|
|
hosts:
|
|
- name: u1
|
|
family: debian
|
|
groups: [test]
|
|
|
|
tasks:
|
|
# =============================================================================
|
|
# НАСТРОЙКА - Загрузка конфигурации
|
|
# =============================================================================
|
|
- name: Configuration setup
|
|
debug:
|
|
msg: |
|
|
================================================================================
|
|
НАСТРОЙКА - Загрузка конфигурации
|
|
================================================================================
|
|
Preset: {{ preset_name }}
|
|
================================================================================
|
|
|
|
- name: Load preset configuration
|
|
include_vars: "{{ preset_file }}"
|
|
when: preset_file is file
|
|
ignore_errors: true
|
|
|
|
# =============================================================================
|
|
# ПРОВЕРКА SYSTEMD УЗЛОВ - Статус systemd контейнеров
|
|
# =============================================================================
|
|
- name: Systemd nodes verification
|
|
debug:
|
|
msg: |
|
|
================================================================================
|
|
ПРОВЕРКА SYSTEMD УЗЛОВ - Статус systemd контейнеров
|
|
================================================================================
|
|
Count: {{ hosts | selectattr('type','undefined') | list | length }}
|
|
================================================================================
|
|
|
|
- name: Check systemd nodes status
|
|
community.docker.docker_container_exec:
|
|
container: "{{ item.name }}"
|
|
command: systemctl is-system-running
|
|
loop: "{{ hosts | selectattr('type','undefined') | list }}"
|
|
loop_control: { label: "{{ item.name }}" }
|
|
register: systemd_status
|
|
ignore_errors: true
|
|
|
|
- name: Display systemd nodes status
|
|
debug:
|
|
msg: "Systemd node {{ item.0.name }}: {{ item.1.stdout | default('unknown') }}"
|
|
loop: "{{ systemd_status.results | default([]) }}"
|
|
when: systemd_status is defined
|
|
|
|
# Проверка DinD узлов
|
|
- name: Check DinD nodes docker daemon
|
|
community.docker.docker_container_exec:
|
|
container: "{{ item.name }}"
|
|
command: docker version --format '{{.Server.Version}}'
|
|
loop: "{{ hosts | selectattr('type','defined') | selectattr('type','equalto','dind') | list }}"
|
|
loop_control: { label: "{{ item.name }}" }
|
|
register: dind_status
|
|
ignore_errors: true
|
|
|
|
- name: Display DinD nodes status
|
|
debug:
|
|
msg: "DinD node {{ item.0.name }}: Docker {{ item.1.stdout | default('not running') }}"
|
|
loop: "{{ dind_status.results | default([]) }}"
|
|
when: dind_status is defined
|
|
|
|
# Проверка DOoD узлов
|
|
- name: Check DOoD nodes docker access
|
|
community.docker.docker_container_exec:
|
|
container: "{{ item.name }}"
|
|
command: docker ps --format '{{.Names}}'
|
|
loop: "{{ hosts | selectattr('type','defined') | selectattr('type','equalto','dood') | list }}"
|
|
loop_control: { label: "{{ item.name }}" }
|
|
register: dood_status
|
|
ignore_errors: true
|
|
|
|
- name: Display DOoD nodes status
|
|
debug:
|
|
msg: "DOoD node {{ item.0.name }}: Can access {{ item.1.stdout_lines | length | default(0) }} containers"
|
|
loop: "{{ dood_status.results | default([]) }}"
|
|
when: dood_status is defined
|
|
|
|
# Проверка сетевого подключения
|
|
- name: Test network connectivity between nodes
|
|
community.docker.docker_container_exec:
|
|
container: "{{ item.0.name }}"
|
|
command: ping -c 1 {{ item.1.name }}
|
|
loop: "{{ hosts | subelements(hosts, 'name') }}"
|
|
loop_control: { label: "{{ item.0.name }} -> {{ item.1.name }}" }
|
|
when: item.0.name != item.1.name
|
|
register: ping_results
|
|
ignore_errors: true
|
|
|
|
- name: Display network connectivity results
|
|
debug:
|
|
msg: "Network test {{ item.0.name }} -> {{ item.1.name }}: {{ 'OK' if item.2.rc == 0 else 'FAILED' }}"
|
|
loop: "{{ ping_results.results | default([]) }}"
|
|
when: ping_results is defined
|
|
|
|
# Проверка портов
|
|
- name: Check published ports
|
|
community.docker.docker_container_exec:
|
|
container: "{{ item.name }}"
|
|
command: netstat -tlnp
|
|
loop: "{{ hosts | selectattr('publish','defined') | list }}"
|
|
loop_control: { label: "{{ item.name }}" }
|
|
register: port_status
|
|
ignore_errors: true
|
|
|
|
- name: Display port status
|
|
debug:
|
|
msg: "Node {{ item.0.name }} ports: {{ item.1.stdout_lines | select('match', 'LISTEN') | list | length }} listening"
|
|
loop: "{{ port_status.results | default([]) }}"
|
|
when: port_status is defined
|
|
|
|
# Проверка групп
|
|
- name: Display inventory groups
|
|
debug:
|
|
msg: |
|
|
📋 Inventory Groups:
|
|
{% for group, members in (groups_map | default({}) | dictsort) %}
|
|
- {{ group }}: {{ members | join(', ') }}
|
|
{% endfor %}
|
|
|
|
# Финальная сводка
|
|
- name: Display verification summary
|
|
debug:
|
|
msg: |
|
|
✅ Verification Summary:
|
|
- Total hosts: {{ hosts | length }}
|
|
- Systemd nodes: {{ hosts | selectattr('type','undefined') | list | length }}
|
|
- DinD nodes: {{ hosts | selectattr('type','defined') | selectattr('type','equalto','dind') | list | length }}
|
|
- DOoD nodes: {{ hosts | selectattr('type','defined') | selectattr('type','equalto','dood') | list | length }}
|
|
- Groups: {{ groups_map.keys() | list | join(', ') }}
|
|
- Network: {{ docker_network }}
|
|
|