Files
DevOpsLab/molecule/default/destroy.yml
Sergey Antropoff 05881e8d74 podman: переход на Podman, Minikube, локальные образы и док для новичков
- Molecule: драйвер delegated, коллекция containers.podman, create/destroy/verify на Podman
- Makefile: все вызовы docker заменены на podman, сокет /run/podman/podman.sock
- Сборка образов: podman build (без buildx), buildall/buildall-image — только локально без push
- Ansible-controller: Podman в образе, docker-compose на podman compose, сокет Podman
- K8s: Kind заменён на Minikube (драйвер podman), скрипты и Makefile обновлены
- Пресеты: проверка локальных образов, без podman pull (registry запрещён)
- Документация: docs/podman.md, docs/quickstart-for-dummies.md (роли, плейбук, линт, тесты, пресеты, инвентори)
- README: ссылка на quickstart-for-dummies

Made-with: Cursor
2026-03-11 19:59:47 +03:00

110 lines
5.1 KiB
YAML

---
# =============================================================================
# DESTROY - Удаление тестовых инстансов
# =============================================================================
- hosts: localhost
gather_facts: false
vars:
# Получаем preset из переменной окружения или используем default
preset_name: "{{ lookup('env', 'MOLECULE_PRESET') | default('default') }}"
# Проверяем сначала в папке k8s, затем в основной папке presets
preset_file: "{{ '/workspace/molecule/presets/k8s/' + preset_name + '.yml' if (preset_name in ['k8s-minimal', 'kubernetes', 'k8s-full'] or preset_name.startswith('k8s-')) else '/workspace/molecule/presets/' + preset_name + '.yml' }}"
# Fallback значения если preset файл не найден
docker_network: labnet
hosts:
- name: u1
family: debian
groups: [test]
kind_clusters: []
tasks:
- name: Display filtered hosts
debug:
msg: |
================================================================================
НАЧАЛО РАБОТЫ ФАЙЛА DESTROY.YML
================================================================================
# =============================================================================
# НАСТРОЙКА - Загрузка конфигурации
# =============================================================================
- name: Configuration setup
debug:
msg: |
================================================================================
НАСТРОЙКА - Загрузка конфигурации
================================================================================
Preset: {{ preset_name }}
================================================================================
- name: Load preset configuration
include_vars: "{{ preset_file }}"
when: preset_file is file
ignore_errors: true
# =============================================================================
# УДАЛЕНИЕ КОНТЕЙНЕРОВ - Остановка и удаление контейнеров
# =============================================================================
- name: Container removal
debug:
msg: |
================================================================================
УДАЛЕНИЕ КОНТЕЙНЕРОВ - Остановка и удаление контейнеров
================================================================================
Count: {{ hosts | length }} containers
================================================================================
- name: Stop and remove containers (Podman)
containers.podman.podman_container:
name: "{{ item.name }}"
state: absent
force_delete: true
loop: "{{ hosts }}"
loop_control: { label: "{{ item.name }}" }
ignore_errors: true
- name: Force remove any remaining containers
shell: |
podman ps -a --filter "name={{ item.name }}" --format "{{ '{{' }}.ID{{ '}}' }}" | xargs -r podman rm -f 2>/dev/null || true
loop: "{{ hosts }}"
loop_control: { label: "{{ item.name }}" }
ignore_errors: true
- name: Remove network
containers.podman.podman_network:
name: "{{ podman_network | default(docker_network) }}"
state: absent
ignore_errors: true
- name: Force cleanup all project containers
shell: |
{% for host in hosts %}
podman ps -a --filter "name={{ host.name }}" --format "{{ '{{' }}.ID{{ '}}' }}" | xargs -r podman rm -f 2>/dev/null || true
{% endfor %}
podman ps -a --filter "ancestor=inecs/ansible-lab" --format "{{ '{{' }}.ID{{ '}}' }}" | xargs -r podman rm -f 2>/dev/null || true
podman ps -a --filter "network=labnet" --format "{{ '{{' }}.ID{{ '}}' }}" | xargs -r podman rm -f 2>/dev/null || true
ignore_errors: true
vars:
hosts: "{{ hosts }}"
- name: Display cleanup summary
debug:
msg: |
================================================================================
СТАТИСТИКА ОЧИСТКИ
================================================================================
Containers: {{ hosts | length }}
Volumes: {{ hosts | selectattr('type','defined') | selectattr('type','equalto','dind') | list | length }}
Network: {{ podman_network | default(docker_network) }}
Clusters: {{ minikube_profiles | default([]) | length }}
================================================================================
- name: Display filtered hosts
debug:
msg: |
================================================================================
РАБОТА ФАЙЛА DESTROY.YML ЗАВЕРШЕНА
================================================================================