From b315bc6b149e3f8dcb8e4df9c61e364cefb88f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=90=D0=BD=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BF=D0=BE=D0=B2?= Date: Sat, 25 Oct 2025 20:27:51 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D1=80=D0=BE=D0=BB=D0=B8=20=D1=87=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=20make=20role=20lint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлен параметр для указания конкретной роли: make role lint [role] - Без параметра проверяются все роли: make role lint - Добавлена валидация существования роли с показом доступных ролей - Обновлена справка в Makefile с примерами использования - Исправлены ошибки линтера: trailing spaces и комментарии Примеры использования: - make role lint - проверить все роли - make role lint devops - проверить только роль devops - make role lint ping - проверить только роль ping --- Makefile | 24 ++++++++++++++++++++---- roles/deploy.yml | 2 +- roles/devops/defaults/main.yml | 8 ++++---- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 6258043..578fb62 100644 --- a/Makefile +++ b/Makefile @@ -48,8 +48,21 @@ BASE_IMAGES := altlinux/p9 astralinux/astra-1.7 redos/redos:9 registry.access.re role: @case "$(word 2, $(MAKECMDGOALS))" in \ lint) \ - 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"; \ + 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"; \ + 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 "✅ Lint завершен";; \ test) \ @@ -130,8 +143,11 @@ role: echo " ansible-playbook -i inventory/hosts.ini roles/deploy.yml --check"; \ echo " 💡 Документация: docs/deploy-yml-customization.md"; \ echo ""; \ - echo " 🔍 make role lint - проверить синтаксис ролей"; \ + echo " 🔍 make role lint [role] - проверить синтаксис ролей"; \ echo " 💡 Использует: ansible-lint"; \ + echo " 💡 Без параметра: проверяет все роли"; \ + echo " 💡 С параметром: проверяет конкретную роль"; \ + echo " 💡 Примеры: make role lint, make role lint devops"; \ echo ""; \ echo " 📋 make role list - показать все роли"; \ echo " 💡 Показывает: список всех ролей в roles/"; \ @@ -932,7 +948,7 @@ help: @echo " dockerfiles/ - Docker образы для тестирования" @echo "" @echo "🚀 ОСНОВНЫЕ КОМАНДЫ:" - @echo " make role lint - проверить синтаксис ролей" + @echo " make role lint [role] - проверить синтаксис ролей (все или конкретную)" @echo " make role test [preset] - протестировать роли с preset'ом" @echo " make role deploy - развернуть роли на реальные серверы" @echo " make role list - показать все роли" diff --git a/roles/deploy.yml b/roles/deploy.yml index 58f617b..625ae50 100644 --- a/roles/deploy.yml +++ b/roles/deploy.yml @@ -7,4 +7,4 @@ hosts: all roles: - ping - #- devops + # - devops diff --git a/roles/devops/defaults/main.yml b/roles/devops/defaults/main.yml index 49ba1d2..d538a0c 100644 --- a/roles/devops/defaults/main.yml +++ b/roles/devops/defaults/main.yml @@ -44,7 +44,7 @@ devops_os_config: groups: ["sudo", "docker"] sudo_file: "/etc/sudoers.d/devops" sudo_validate: "visudo -cf %s" - + # RHEL/CentOS/Rocky/AlmaLinux rhel: groups: ["wheel", "docker"] @@ -62,19 +62,19 @@ devops_os_config: groups: ["wheel", "docker"] sudo_file: "/etc/sudoers.d/devops" sudo_validate: "visudo -cf %s" - + # Astra Linux astra: groups: ["sudo", "docker"] sudo_file: "/etc/sudoers.d/devops" sudo_validate: "visudo -cf %s" - + # ALT Linux alt: groups: ["wheel", "docker"] sudo_file: "/etc/sudoers.d/devops" sudo_validate: "visudo -cf %s" - + # RedOS redos: groups: ["wheel", "docker"]