#!/usr/bin/env python3 """ Скрипт для удаления контейнеров из секции hosts пресета Автор: Сергей Антропов Сайт: https://devops.org.ru """ import sys import yaml import subprocess def main(): if len(sys.argv) < 2: print("Usage: delete_hosts.py ") sys.exit(1) preset_file = sys.argv[1] print(f"📋 Читаю пресет: {preset_file}") with open(preset_file, 'r') as f: preset = yaml.safe_load(f) hosts = preset.get('hosts', []) if not hosts: print("⚠️ В пресете нет контейнеров для удаления") sys.exit(0) print(f"🗑️ Удаление контейнеров (всего: {len(hosts)})") for host in hosts: host_name = host['name'] # Проверяем существование контейнера result = subprocess.run(f"docker ps -a --format '{{{{.Names}}}}' | grep -x {host_name}", shell=True, capture_output=True, text=True) if result.stdout.strip(): print(f"🗑️ Удаление контейнера: {host_name}") subprocess.run(f"docker rm -f {host_name}", shell=True, capture_output=True, text=True) print(f"✅ Контейнер '{host_name}' удален") else: print(f"⚠️ Контейнер '{host_name}' не найден") print("✅ Удаление завершено") if __name__ == "__main__": main()