feat: Добавлена поддержка ansible-lint с настройками для пропуска ошибок
- Добавлена команда make lint для проверки всего проекта - Обновлена команда make role lint для использования .ansible-lint - Добавлен файл .ansible-lint с настройками для пропуска ошибок: - fqcn: позволяет использовать короткие имена модулей - yaml[new-line-at-end-of-file]: не требует новой строки в конце YAML - yaml[truthy]: позволяет использовать yes/no вместо true/false - yaml[line-length]: не ограничивает длину строк в YAML - var-naming[no-role-prefix]: не требует префиксов для переменных - ignore-errors: позволяет использовать ignore_errors: yes Обновления в Makefile: - make lint: проверяет весь проект (molecule, playbooks, roles) - make role lint: использует --config-file /ansible/.ansible-lint - Добавлена команда lint в справку make help Обновления в документации: - README.md: добавлена команда make lint - docs/api.md: добавлены разделы Ansible-lint команды и настройки Преимущества: - Единообразная проверка всего проекта - Гибкие настройки для пропуска нежелательных ошибок - Автоматическое использование конфигурационного файла - Подробная документация по настройкам Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
14
Makefile
14
Makefile
@@ -73,7 +73,7 @@ help: ## Показать справку по всем командам
|
|||||||
@awk 'BEGIN {FS = ":.*?## "} /^role-[a-zA-Z_-]+:.*?## / {printf " $(CYAN)%-20s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
@awk 'BEGIN {FS = ":.*?## "} /^role-[a-zA-Z_-]+:.*?## / {printf " $(CYAN)%-20s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "$(GREEN)Утилиты:$(RESET)"
|
@echo "$(GREEN)Утилиты:$(RESET)"
|
||||||
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " $(CYAN)%-20s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST) | grep -E "^(env|vault|git|docker|report|snapshot|cleanup)"
|
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " $(CYAN)%-20s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST) | grep -E "^(lint|env|vault|git|docker|report|snapshot|cleanup)"
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# ИНИЦИАЛИЗАЦИЯ И НАСТРОЙКА
|
# ИНИЦИАЛИЗАЦИЯ И НАСТРОЙКА
|
||||||
@@ -401,7 +401,7 @@ role: ## Управление ролями (list|create|edit|test|lint|deploy)
|
|||||||
$(MAKE) lab test LAB_SPEC=molecule/presets/minimal.yml;; \
|
$(MAKE) lab test LAB_SPEC=molecule/presets/minimal.yml;; \
|
||||||
lint) \
|
lint) \
|
||||||
echo "$(YELLOW)🔍 Проверяем роли...$(RESET)"; \
|
echo "$(YELLOW)🔍 Проверяем роли...$(RESET)"; \
|
||||||
docker exec ansible-controller bash -lc 'ansible-lint $(ROLES_DIR)/*'; \
|
docker exec ansible-controller bash -lc 'ansible-lint --config-file /ansible/.ansible-lint $(ROLES_DIR)/*'; \
|
||||||
echo "$(GREEN)✅ Проверка завершена$(RESET)";; \
|
echo "$(GREEN)✅ Проверка завершена$(RESET)";; \
|
||||||
deploy) \
|
deploy) \
|
||||||
echo "$(PURPLE)🚀 Развертываем роли...$(RESET)"; \
|
echo "$(PURPLE)🚀 Развертываем роли...$(RESET)"; \
|
||||||
@@ -599,6 +599,16 @@ cleanup: ## Очистить лабораторию
|
|||||||
# УТИЛИТЫ
|
# УТИЛИТЫ
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
|
.PHONY: lint
|
||||||
|
lint: ## Проверить весь проект на ошибки
|
||||||
|
@echo "$(YELLOW)🔍 Проверяем весь проект...$(RESET)"
|
||||||
|
@docker exec ansible-controller bash -lc 'ansible-lint --config-file /ansible/.ansible-lint molecule/universal/'
|
||||||
|
@docker exec ansible-controller bash -lc 'ansible-lint --config-file /ansible/.ansible-lint files/playbooks/'
|
||||||
|
@if [ -d "$(ROLES_DIR)" ] && [ -n "$$(ls $(ROLES_DIR)/ 2>/dev/null)" ]; then \
|
||||||
|
docker exec ansible-controller bash -lc 'ansible-lint --config-file /ansible/.ansible-lint $(ROLES_DIR)/*'; \
|
||||||
|
fi
|
||||||
|
@echo "$(GREEN)✅ Проверка завершена$(RESET)"
|
||||||
|
|
||||||
.PHONY: env
|
.PHONY: env
|
||||||
env: ## Показать переменные окружения
|
env: ## Показать переменные окружения
|
||||||
@echo "$(CYAN)🔧 Переменные окружения:$(RESET)"
|
@echo "$(CYAN)🔧 Переменные окружения:$(RESET)"
|
||||||
|
|||||||
@@ -100,6 +100,9 @@ make role create NAME=my-role
|
|||||||
make role test NAME=my-role
|
make role test NAME=my-role
|
||||||
make role lint # Проверка ролей
|
make role lint # Проверка ролей
|
||||||
|
|
||||||
|
# Проверка всего проекта
|
||||||
|
make lint # Проверить весь проект на ошибки
|
||||||
|
|
||||||
# Управление Vault
|
# Управление Vault
|
||||||
make vault show # Показать содержимое
|
make vault show # Показать содержимое
|
||||||
make vault create # Создать vault файл
|
make vault create # Создать vault файл
|
||||||
|
|||||||
36
docs/api.md
36
docs/api.md
@@ -197,6 +197,42 @@ kubectl logs <pod-name>
|
|||||||
kubectl exec -it <pod-name> -- /bin/sh
|
kubectl exec -it <pod-name> -- /bin/sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Ansible-lint команды
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Проверить весь проект
|
||||||
|
make lint
|
||||||
|
|
||||||
|
# Проверить роли
|
||||||
|
make role lint
|
||||||
|
|
||||||
|
# Проверить конкретную роль
|
||||||
|
ansible-lint --config-file .ansible-lint roles/my-role/
|
||||||
|
|
||||||
|
# Проверить playbook
|
||||||
|
ansible-lint --config-file .ansible-lint files/playbooks/site.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Настройки ansible-lint (.ansible-lint)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
skip_list:
|
||||||
|
- fqcn # Полные имена модулей
|
||||||
|
- yaml[new-line-at-end-of-file] # Новая строка в конце файла
|
||||||
|
- yaml[truthy] # Булевы значения
|
||||||
|
- yaml[line-length] # Длина строки
|
||||||
|
- var-naming[no-role-prefix] # Префиксы переменных
|
||||||
|
- 'ignore-errors' # Игнорирование ошибок
|
||||||
|
```
|
||||||
|
|
||||||
|
**Описание пропускаемых правил:**
|
||||||
|
- `fqcn` - позволяет использовать короткие имена модулей (например, `yum` вместо `ansible.builtin.yum`)
|
||||||
|
- `yaml[new-line-at-end-of-file]` - не требует новой строки в конце YAML файлов
|
||||||
|
- `yaml[truthy]` - позволяет использовать `yes/no` вместо `true/false`
|
||||||
|
- `yaml[line-length]` - не ограничивает длину строк в YAML
|
||||||
|
- `var-naming[no-role-prefix]` - не требует префиксов для переменных ролей
|
||||||
|
- `ignore-errors` - позволяет использовать `ignore_errors: yes`
|
||||||
|
|
||||||
### Port-forward команды
|
### Port-forward команды
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Reference in New Issue
Block a user