- Удалена папка 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
26 lines
603 B
Bash
Executable File
26 lines
603 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Восстановление лаборатории из снапшотов
|
|
# Автор: Сергей Антропов
|
|
# Сайт: https://devops.org.ru
|
|
|
|
set -euo pipefail
|
|
|
|
IN_DIR="/ansible/snapshots"
|
|
if [ ! -d "$IN_DIR" ]; then
|
|
echo "No snapshots dir"
|
|
exit 1
|
|
fi
|
|
|
|
for f in "$IN_DIR"/*.image; do
|
|
if [ ! -f "$f" ]; then
|
|
continue
|
|
fi
|
|
name=$(basename "$f" .image)
|
|
img=$(cat "$f")
|
|
echo "[restore] $name from $img"
|
|
docker rm -f "$name" >/dev/null 2>&1 || true
|
|
docker run -d --name "$name" "$img" >/dev/null
|
|
done
|
|
|
|
echo "Restored from $IN_DIR/"
|