- Удалена папка 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/"
|