feat: Добавлен пресет all-images и установка sudo во все Dockerfile

- Создан пресет all-images для тестирования всех 9 образов
- Добавлен sudo во все Dockerfile образы
- Настроены sudoers для root и пользователей
- Упрощен site.yml (убрана установка sudo)
- Добавлена документация для пресета all-images
- Обновлен Makefile с поддержкой нового пресета
- Исправлена проблема с Parsec в Astra Linux
- Улучшена система очистки контейнеров

Пресет all-images включает:
- Debian-based: Ubuntu, Debian, Alt Linux, Astra Linux
- RHEL-based: CentOS, RHEL, AlmaLinux, Rocky Linux, RedOS
- Уникальные порты 8080-8088
- Переменные окружения TEST_OS и TEST_FAMILY
This commit is contained in:
Сергей Антропов
2025-10-25 19:00:34 +03:00
parent 94560ffaaa
commit 9ce30e0d67
18 changed files with 473 additions and 8 deletions

View File

@@ -78,7 +78,7 @@ role:
-e MOLECULE_PRESET=$$PRESET \
-e MOLECULE_EPHEMERAL_DIRECTORY=/tmp/molecule_workspace \
$(DOCKER_IMAGE) \
bash -c "mkdir -p /tmp/molecule_workspace/inventory && cd molecule/default && ansible-playbook -i localhost, create.yml --connection=local -e molecule_ephemeral_directory=/tmp/molecule_workspace && ansible-playbook -i /tmp/molecule_workspace/inventory/hosts.ini site.yml && ansible-playbook -i localhost, destroy.yml --connection=local -e molecule_ephemeral_directory=/tmp/molecule_workspace" || echo "✅ Тестирование завершено"; \
bash -c "mkdir -p /tmp/molecule_workspace/inventory && cd molecule/default && ansible-playbook -i localhost, create.yml --connection=local -e molecule_ephemeral_directory=/tmp/molecule_workspace && ansible-playbook -i /tmp/molecule_workspace/inventory/hosts.ini site.yml; ansible-playbook -i localhost, destroy.yml --connection=local -e molecule_ephemeral_directory=/tmp/molecule_workspace; echo '✅ Тестирование завершено'"; \
fi;; \
deploy) \
echo "🚀 Развертывание ролей на реальные серверы..."; \
@@ -116,6 +116,7 @@ role:
echo " 💡 Примеры:"; \
echo " make role test # с default preset"; \
echo " make role test minimal # с minimal preset"; \
echo " make role test all-images # со всеми образами"; \
echo " make role test etcd-patroni # с etcd-patroni preset"; \
echo ""; \
echo " 🚀 make role deploy - развернуть роли на реальные серверы"; \
@@ -975,6 +976,7 @@ help:
@echo " make presets list # показать все preset'ы"
@echo " make presets test PRESET=etcd-patroni # тест с etcd-patroni"
@echo " make role test minimal # быстрый тест"
@echo " make role test all-images # тест всех образов"
@echo " make docker setup-builder # настройка multi-arch builder"
@echo " make docker diagnose # диагностика buildx проблем"
@echo " make docker reset-builder # сброс buildx builder"
@@ -1062,6 +1064,20 @@ setup-cicd:
@chmod +x scripts/setup-cicd.sh
@./scripts/setup-cicd.sh
# Очистка контейнеров Molecule
.PHONY: clean-containers
clean-containers:
@echo "🧹 Очистка контейнеров Molecule..."
@echo "📋 Поиск контейнеров проекта..."
@docker ps -a --filter "ancestor=inecs/ansible-lab" --format "table {{.Names}}\t{{.Status}}\t{{.Image}}" || true
@echo ""
@echo "🗑️ Удаление контейнеров..."
@docker ps -a --filter "ancestor=inecs/ansible-lab" --format "{{.ID}}" | xargs -r docker rm -f 2>/dev/null || true
@docker ps -a --filter "network=labnet" --format "{{.ID}}" | xargs -r docker rm -f 2>/dev/null || true
@echo "🧹 Очистка сетей..."
@docker network rm labnet 2>/dev/null || true
@echo "✅ Очистка завершена"
# Пустые цели для совместимости
view create edit show delete lint deploy new advanced list info test build push pull clean prepare update run stop purge clean-builder setup-builder diagnose reset-builder build-image:
@true