refactor: перенос команды deploy в контейнер ansible-controller

- Команда make role deploy теперь выполняется в контейнере
- Добавлено монтирование ~/.ssh для SSH доступа
- Все команды (lint, test, deploy) работают в контейнерах
- Не требуется установка Ansible на локальную машину

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
Сергей Антропов
2025-10-25 16:57:42 +03:00
parent 020c4f8087
commit 6a8998c0ec

View File

@@ -87,14 +87,22 @@ role:
fi; \ fi; \
echo "📋 Используется inventory: inventory/hosts.ini"; \ echo "📋 Используется inventory: inventory/hosts.ini"; \
echo "📄 Содержимое inventory:"; \ echo "📄 Содержимое inventory:"; \
cat inventory/hosts.ini; \ docker run --rm -v "$(PWD):/workspace" -w /workspace $(DOCKER_IMAGE) cat inventory/hosts.ini || cat inventory/hosts.ini; \
echo ""; \ echo ""; \
echo "🚀 Запуск развертывания..."; \ echo "🚀 Запуск развертывания (в контейнере)..."; \
ansible-playbook -i inventory/hosts.ini deploy.yml --check; \ docker run --rm --name $(CONTAINER_NAME) -v "$(PWD):/workspace" -w /workspace \
-v ~/.ssh:/root/.ssh:ro \
-e ANSIBLE_FORCE_COLOR=1 \
$(DOCKER_IMAGE) \
bash -c "ansible-playbook -i inventory/hosts.ini deploy.yml --check"; \
echo ""; \ echo ""; \
read -p "Продолжить развертывание? (y/N): " confirm; \ read -p "Продолжить развертывание? (y/N): " confirm; \
if [ "$$confirm" = "y" ] || [ "$$confirm" = "Y" ]; then \ if [ "$$confirm" = "y" ] || [ "$$confirm" = "Y" ]; then \
ansible-playbook -i inventory/hosts.ini deploy.yml; \ docker run --rm --name $(CONTAINER_NAME) -v "$(PWD):/workspace" -w /workspace \
-v ~/.ssh:/root/.ssh:ro \
-e ANSIBLE_FORCE_COLOR=1 \
$(DOCKER_IMAGE) \
bash -c "ansible-playbook -i inventory/hosts.ini deploy.yml"; \
else \ else \
echo "❌ Развертывание отменено"; \ echo "❌ Развертывание отменено"; \
fi;; \ fi;; \