feat: добавлена возможность проверки отдельной роли через make role lint
Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled

- Добавлен параметр для указания конкретной роли: make role lint [role]
- Без параметра проверяются все роли: make role lint
- Добавлена валидация существования роли с показом доступных ролей
- Обновлена справка в Makefile с примерами использования
- Исправлены ошибки линтера: trailing spaces и комментарии

Примеры использования:
- make role lint          - проверить все роли
- make role lint devops   - проверить только роль devops
- make role lint ping     - проверить только роль ping
This commit is contained in:
Сергей Антропов
2025-10-25 20:27:51 +03:00
parent 7232bd6756
commit b315bc6b14
3 changed files with 25 additions and 9 deletions

View File

@@ -48,8 +48,21 @@ BASE_IMAGES := altlinux/p9 astralinux/astra-1.7 redos/redos:9 registry.access.re
role: role:
@case "$(word 2, $(MAKECMDGOALS))" in \ @case "$(word 2, $(MAKECMDGOALS))" in \
lint) \ lint) \
echo "🔍 Проверка синтаксиса ролей ..."; \ ROLE_NAME="$(word 3, $(MAKECMDGOALS))"; \
if [ -z "$$ROLE_NAME" ]; then \
echo "🔍 Проверка синтаксиса всех ролей ..."; \
docker run --rm --name $(CONTAINER_NAME) -v "$(PWD):/workspace" -w /workspace -e ANSIBLE_FORCE_COLOR=1 $(DOCKER_IMAGE) bash -c "ansible-lint roles/ --config-file .ansible-lint || true"; \ docker run --rm --name $(CONTAINER_NAME) -v "$(PWD):/workspace" -w /workspace -e ANSIBLE_FORCE_COLOR=1 $(DOCKER_IMAGE) bash -c "ansible-lint roles/ --config-file .ansible-lint || true"; \
else \
echo "🔍 Проверка синтаксиса роли: $$ROLE_NAME"; \
if [ -d "roles/$$ROLE_NAME" ]; then \
docker run --rm --name $(CONTAINER_NAME) -v "$(PWD):/workspace" -w /workspace -e ANSIBLE_FORCE_COLOR=1 $(DOCKER_IMAGE) bash -c "ansible-lint roles/$$ROLE_NAME/ --config-file .ansible-lint || true"; \
else \
echo "❌ Роль '$$ROLE_NAME' не найдена в roles/"; \
echo "📋 Доступные роли:"; \
ls -1 roles/ | grep -v "\.yml$$" | sed 's/^/ - /'; \
exit 1; \
fi; \
fi; \
echo ""; \ echo ""; \
echo "✅ Lint завершен";; \ echo "✅ Lint завершен";; \
test) \ test) \
@@ -130,8 +143,11 @@ role:
echo " ansible-playbook -i inventory/hosts.ini roles/deploy.yml --check"; \ echo " ansible-playbook -i inventory/hosts.ini roles/deploy.yml --check"; \
echo " 💡 Документация: docs/deploy-yml-customization.md"; \ echo " 💡 Документация: docs/deploy-yml-customization.md"; \
echo ""; \ echo ""; \
echo " 🔍 make role lint - проверить синтаксис ролей"; \ echo " 🔍 make role lint [role] - проверить синтаксис ролей"; \
echo " 💡 Использует: ansible-lint"; \ echo " 💡 Использует: ansible-lint"; \
echo " 💡 Без параметра: проверяет все роли"; \
echo " 💡 С параметром: проверяет конкретную роль"; \
echo " 💡 Примеры: make role lint, make role lint devops"; \
echo ""; \ echo ""; \
echo " 📋 make role list - показать все роли"; \ echo " 📋 make role list - показать все роли"; \
echo " 💡 Показывает: список всех ролей в roles/"; \ echo " 💡 Показывает: список всех ролей в roles/"; \
@@ -932,7 +948,7 @@ help:
@echo " dockerfiles/ - Docker образы для тестирования" @echo " dockerfiles/ - Docker образы для тестирования"
@echo "" @echo ""
@echo "🚀 ОСНОВНЫЕ КОМАНДЫ:" @echo "🚀 ОСНОВНЫЕ КОМАНДЫ:"
@echo " make role lint - проверить синтаксис ролей" @echo " make role lint [role] - проверить синтаксис ролей (все или конкретную)"
@echo " make role test [preset] - протестировать роли с preset'ом" @echo " make role test [preset] - протестировать роли с preset'ом"
@echo " make role deploy - развернуть роли на реальные серверы" @echo " make role deploy - развернуть роли на реальные серверы"
@echo " make role list - показать все роли" @echo " make role list - показать все роли"