- Реорганизован Makefile: * Переменные вынесены наверх * Справка перенесена в конец * Удалены секции molecule и container * Объединены presets и preset в одну секцию * Переименована секция docker в docker-cmd - Добавлены Docker образы: * ansible-controller - основной контроллер * alt-linux, astra-linux, redos - российские дистрибутивы * rhel, centos, alma, rocky - RHEL-совместимые образы - Обновлены preset'ы: * Добавлены описания #description: во все preset'ы * Переименован docker.yml в docker-test.yml * Добавлены новые preset'ы: etcd-patroni, multi-os - Добавлена документация: * docs/examples.md - примеры использования * docs/universal-testing.md - универсальное тестирование * dockerfiles/README.md - описание Docker образов - Улучшена функциональность: * Единообразный стиль команд make [категория] [действие] * Улучшенный вывод информации о preset'ах * Добавлены пустые цели для совместимости
60 lines
2.0 KiB
YAML
60 lines
2.0 KiB
YAML
---
|
|
- 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: Load preset configuration
|
|
include_vars: "{{ preset_file }}"
|
|
when: preset_file is file
|
|
ignore_errors: true
|
|
|
|
- name: Stop and remove containers
|
|
community.docker.docker_container:
|
|
name: "{{ item.name }}"
|
|
state: absent
|
|
force_kill: true
|
|
loop: "{{ hosts }}"
|
|
loop_control: { label: "{{ item.name }}" }
|
|
ignore_errors: true
|
|
|
|
- name: Remove DinD volumes
|
|
community.docker.docker_volume:
|
|
name: "{{ item.name }}-docker"
|
|
state: absent
|
|
loop: "{{ hosts | selectattr('type','defined') | selectattr('type','equalto','dind') | list }}"
|
|
loop_control: { label: "{{ item.name }}" }
|
|
ignore_errors: true
|
|
|
|
- name: Remove custom volumes
|
|
community.docker.docker_volume:
|
|
name: "{{ item.volumes | default([]) | select('match', '^[^:]+$') | list }}"
|
|
state: absent
|
|
loop: "{{ hosts }}"
|
|
loop_control: { label: "{{ item.name }}" }
|
|
ignore_errors: true
|
|
when: item.volumes is defined
|
|
|
|
- name: Remove network
|
|
community.docker.docker_network:
|
|
name: "{{ docker_network }}"
|
|
state: absent
|
|
ignore_errors: true
|
|
|
|
- name: Display cleanup summary
|
|
debug:
|
|
msg: |
|
|
🧹 Cleanup Summary:
|
|
- Removed containers: {{ hosts | length }}
|
|
- Removed DinD volumes: {{ hosts | selectattr('type','defined') | selectattr('type','equalto','dind') | list | length }}
|
|
- Network: {{ docker_network }} |