- Создана система пресетов для быстрого переключения между конфигурациями - Добавлены пресеты: minimal, standard, docker, cluster - Обновлена структура проекта с папками cicd/, vault/, scripts/ - Упрощена система vault с функциональными секретами - Добавлены скрипты для работы с пресетами - Обновлен Makefile с командами для пресетов - Удалены старые файлы и структуры Автор: Сергей Антропов Сайт: https://devops.org.ru
191 lines
8.2 KiB
Makefile
191 lines
8.2 KiB
Makefile
# AnsibleTemplate - Универсальная система тестирования Ansible ролей
|
||
# Автор: Сергей Антропов
|
||
# Сайт: https://devops.org.ru
|
||
|
||
.PHONY: molecule vault git help
|
||
|
||
####################################################################################################
|
||
# Работа с пресетами
|
||
####################################################################################################
|
||
# Пресеты
|
||
preset-list:
|
||
@./scripts/list-presets.sh
|
||
|
||
preset-use:
|
||
@./scripts/use-preset.sh $(word 2, $(MAKECMDGOALS))
|
||
|
||
# Псевдонимы для пресетов
|
||
preset-minimal:
|
||
@./scripts/use-preset.sh minimal
|
||
|
||
preset-standard:
|
||
@./scripts/use-preset.sh standard
|
||
|
||
preset-docker:
|
||
@./scripts/use-preset.sh docker
|
||
|
||
preset-cluster:
|
||
@./scripts/use-preset.sh cluster
|
||
|
||
####################################################################################################
|
||
# Работа с Molecule Universal
|
||
####################################################################################################
|
||
molecule:
|
||
@case "$(word 2, $(MAKECMDGOALS))" in \
|
||
create) \
|
||
clear; \
|
||
echo "Создание тестового окружения..."; \
|
||
cd molecule/universal && molecule create -s universal;; \
|
||
converge) \
|
||
clear; \
|
||
echo "Запуск плейбуков..."; \
|
||
cd molecule/universal && molecule converge -s universal;; \
|
||
verify) \
|
||
clear; \
|
||
echo "Проверка результатов..."; \
|
||
cd molecule/universal && molecule verify -s universal;; \
|
||
destroy) \
|
||
clear; \
|
||
echo "Удаление тестового окружения..."; \
|
||
cd molecule/universal && molecule destroy -s universal;; \
|
||
test) \
|
||
clear; \
|
||
echo "Полный цикл тестирования..."; \
|
||
cd molecule/universal && molecule test -s universal;; \
|
||
*) \
|
||
clear; \
|
||
echo "Доступные команды:"; \
|
||
echo " make molecule create - создать окружение"; \
|
||
echo " make molecule converge - запустить плейбуки"; \
|
||
echo " make molecule verify - проверить результаты"; \
|
||
echo " make molecule destroy - удалить окружение"; \
|
||
echo " make molecule test - полный цикл тестирования"; \
|
||
;; \
|
||
esac
|
||
|
||
####################################################################################################
|
||
# Работа с Ansible Vault
|
||
####################################################################################################
|
||
vault:
|
||
@case "$(word 2, $(MAKECMDGOALS))" in \
|
||
show) \
|
||
clear; \
|
||
echo "Доступные файлы секретов:"; \
|
||
ls -la vault/*.yml 2>/dev/null || echo "Нет зашифрованных файлов"; \
|
||
echo ""; \
|
||
read -p "Введите имя файла (без .yml): " FILE; \
|
||
ansible-vault view --vault-password-file vault/.vault vault/$$FILE.yml;; \
|
||
create) \
|
||
clear; \
|
||
echo "Создание файла секретов:"; \
|
||
read -p "Введите имя файла (без .yml): " FILE; \
|
||
ansible-vault create --encrypt-vault-id default --vault-password-file vault/.vault vault/$$FILE.yml;; \
|
||
edit) \
|
||
clear; \
|
||
echo "Доступные файлы секретов:"; \
|
||
ls -la vault/*.yml 2>/dev/null || echo "Нет зашифрованных файлов"; \
|
||
echo ""; \
|
||
read -p "Введите имя файла (без .yml): " FILE; \
|
||
ansible-vault edit --vault-password-file vault/.vault vault/$$FILE.yml;; \
|
||
delete) \
|
||
clear; \
|
||
echo "Доступные файлы секретов:"; \
|
||
ls -la vault/*.yml 2>/dev/null || echo "Нет зашифрованных файлов"; \
|
||
echo ""; \
|
||
read -p "Введите имя файла (без .yml): " FILE; \
|
||
rm -f vault/$$FILE.yml;; \
|
||
rekey) \
|
||
clear; \
|
||
echo "Доступные файлы секретов:"; \
|
||
ls -la vault/*.yml 2>/dev/null || echo "Нет зашифрованных файлов"; \
|
||
echo ""; \
|
||
read -p "Введите имя файла (без .yml): " FILE; \
|
||
ansible-vault rekey --vault-password-file vault/.vault vault/$$FILE.yml;; \
|
||
decrypt) \
|
||
clear; \
|
||
echo "Доступные файлы секретов:"; \
|
||
ls -la vault/*.yml 2>/dev/null || echo "Нет зашифрованных файлов"; \
|
||
echo ""; \
|
||
read -p "Введите имя файла (без .yml): " FILE; \
|
||
ansible-vault decrypt --vault-password-file vault/.vault vault/$$FILE.yml;; \
|
||
encrypt) \
|
||
clear; \
|
||
echo "Доступные файлы секретов:"; \
|
||
ls -la vault/*.yml 2>/dev/null || echo "Нет зашифрованных файлов"; \
|
||
echo ""; \
|
||
read -p "Введите имя файла (без .yml): " FILE; \
|
||
ansible-vault encrypt --encrypt-vault-id default --vault-password-file vault/.vault vault/$$FILE.yml;; \
|
||
*) \
|
||
clear; \
|
||
echo "Доступные команды:"; \
|
||
echo " make vault create - создать файл секретов"; \
|
||
echo " make vault edit - редактировать секреты"; \
|
||
echo " make vault show - показать секреты"; \
|
||
echo " make vault delete - удалить секреты"; \
|
||
echo " make vault encrypt - зашифровать файл"; \
|
||
echo " make vault decrypt - расшифровать файл"; \
|
||
echo " make vault rekey - сменить пароль";; \
|
||
esac
|
||
|
||
####################################################################################################
|
||
# Работа с Git
|
||
####################################################################################################
|
||
git:
|
||
@case "$(word 2, $(MAKECMDGOALS))" in \
|
||
push) \
|
||
git branch; \
|
||
read -p "Выберите ветку для пуша: " BRANCH; \
|
||
read -p "Введите описание коммита: " COMMIT; \
|
||
commitname=$$COMMIT; \
|
||
git add . ; \
|
||
git commit -m "$$commitname"; \
|
||
git push -u origin $$BRANCH; \
|
||
echo "Изменения внесены в Git";; \
|
||
pull) \
|
||
git pull;; \
|
||
new) \
|
||
read -p "Введите имя новой ветки: " BRANCH_NAME; \
|
||
NEW_BRANCH="$$BRANCH_NAME"; \
|
||
git checkout -b $$NEW_BRANCH; \
|
||
echo "Создана и переключена на новую ветку: $$NEW_BRANCH";; \
|
||
*) \
|
||
clear; \
|
||
echo "Доступные команды:"; \
|
||
echo " make git push - запушить изменения"; \
|
||
echo " make git pull - получить изменения"; \
|
||
echo " make git new - создать новую ветку";; \
|
||
esac
|
||
|
||
####################################################################################################
|
||
# Справка
|
||
####################################################################################################
|
||
help:
|
||
@clear
|
||
@echo "=========================================="
|
||
@echo "AnsibleTemplate - Универсальная система"
|
||
@echo "тестирования Ansible ролей"
|
||
@echo "=========================================="
|
||
@echo ""
|
||
@echo "📁 Структура проекта:"
|
||
@echo " scripts/ - Скрипты автоматизации"
|
||
@echo " inventory/ - Инвентори файлы"
|
||
@echo " molecule/universal/ - Molecule конфигурация"
|
||
@echo " roles/ - Ansible роли"
|
||
@echo " vars/ - Переменные"
|
||
@echo ""
|
||
@echo "🚀 Основные команды:"
|
||
@echo " make molecule create - создать тестовое окружение"
|
||
@echo " make molecule test - полный цикл тестирования"
|
||
@echo " make molecule generateinventory - сгенерировать инвентори"
|
||
@echo " make vault create - создать файл секретов"
|
||
@echo " make git new - создать новую ветку"
|
||
@echo ""
|
||
@echo "📖 Для подробной справки:"
|
||
@echo " make molecule - команды Molecule"
|
||
@echo " make vault - команды Vault"
|
||
@echo " make git - команды Git"
|
||
@echo "=========================================="
|
||
|
||
# Пустые цели для совместимости
|
||
view create edit show delete test lint deploy new advanced:
|
||
@true
|