- Удалена папка molecule/default (больше не используется) - Все скрипты в папке scripts теперь запускаются через Docker контейнер - Обновлены пути в скриптах для работы внутри контейнера: - snapshot.sh: OUT_DIR=/ansible/snapshots - restore.sh: IN_DIR=/ansible/snapshots - cleanup.sh: остался без изменений (уже корректный) Обновления в docker-compose.yaml: - Добавлены монтирования для scripts, reports, snapshots - Скрипты теперь доступны внутри контейнера по пути /ansible/scripts/ - Отчеты сохраняются в /ansible/reports/ - Снапшоты сохраняются в /ansible/snapshots/ Обновления в Makefile: - make snapshot теперь запускает: docker exec ansible-controller bash -lc 'bash /ansible/scripts/snapshot.sh' - make restore теперь запускает: docker exec ansible-controller bash -lc 'bash /ansible/scripts/restore.sh' - make cleanup теперь запускает: docker exec ansible-controller bash -lc 'bash /ansible/scripts/cleanup.sh' Преимущества: - Не требует установки дополнительных инструментов локально - Все операции выполняются в изолированной среде - Единообразный подход к запуску всех скриптов - Автоматическое создание необходимых директорий Обновлена документация: - README.md: добавлено упоминание о запуске через Docker - docs/api.md: обновлены примеры скриптов с путями для Docker Автор: Сергей Антропов Сайт: https://devops.org.ru
		
			
				
	
	
		
			27 lines
		
	
	
		
			686 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			686 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| # Снапшот лаборатории
 | |
| # Автор: Сергей Антропов
 | |
| # Сайт: https://devops.org.ru
 | |
| 
 | |
| set -euo pipefail
 | |
| 
 | |
| OUT_DIR="/ansible/snapshots"
 | |
| mkdir -p "$OUT_DIR"
 | |
| 
 | |
| # Найти все контейнеры лаборатории
 | |
| ids=$(docker ps -q --filter "label=ansible.lab=true")
 | |
| if [ -z "$ids" ]; then
 | |
|     echo "No lab containers to snapshot"
 | |
|     exit 0
 | |
| fi
 | |
| 
 | |
| for id in $ids; do
 | |
|     name=$(docker inspect --format '{{.Name}}' "$id" | sed 's#^/##')
 | |
|     img="lab-snap-$name:latest"
 | |
|     echo "[snapshot] $name -> $img"
 | |
|     docker commit "$id" "$img" >/dev/null
 | |
|     echo "$img" > "$OUT_DIR/$name.image"
 | |
| done
 | |
| 
 | |
| echo "Snapshots saved to $OUT_DIR/"
 |