97 lines
3.1 KiB
Makefile
97 lines
3.1 KiB
Makefile
# Переменные
|
||
ROLE_NAME ?= my_new_role
|
||
VAULT_PASSWORD_FILE ?= vault_password_file
|
||
INVENTORY ?= /workspace/inventory/hosts # Путь к инвентори внутри контейнера
|
||
PLAYBOOK ?= /workspace/role/playbook.yml # Путь к playbook внутри контейнера
|
||
|
||
####################################################################################################
|
||
# Управление контейнерами с помощью docker compose
|
||
####################################################################################################
|
||
# Сборка docker-образов
|
||
build:
|
||
docker compose build $(c)
|
||
|
||
# Пересборка docker-образов
|
||
rebuild:
|
||
docker compose build --no-cache $(c)
|
||
docker compose down
|
||
docker compose up -d
|
||
|
||
# Создание и запуск docker-контейнеров
|
||
up:
|
||
docker compose up -d
|
||
|
||
# Остановка и УДАЛЕНИЕ docker-контейнеров
|
||
down:
|
||
docker compose down
|
||
|
||
# Остановка docker-контейнеров
|
||
stop:
|
||
docker compose stop $(c)
|
||
|
||
# Запуск docker-контейнеров
|
||
start:
|
||
docker compose start $(c)
|
||
|
||
# Перезапуск docker-контейнеров
|
||
restart: down up
|
||
|
||
# Удаление docker-контейнеров с вольюмами
|
||
destroy:
|
||
docker compose down --volumes --remove-orphans && rm -rf data/*/
|
||
|
||
# Удаление docker-контейнеров с полной очисткой неактивных контейнеров
|
||
prune:
|
||
docker system prune -af
|
||
|
||
# Показать список контейнеров
|
||
ps:
|
||
docker compose ps
|
||
|
||
# Все логи конейнеров
|
||
logs:
|
||
docker compose logs --tail=100 -f $(c)
|
||
|
||
shell:
|
||
docker compose exec ansible bash
|
||
|
||
|
||
.PHONY: test lint vault deploy
|
||
|
||
test: ## Запуск тестов с molecule
|
||
docker compose run --rm ansible bash -c "molecule test"
|
||
|
||
lint: ## Проверка кода с ansible-lint
|
||
docker compose run --rm ansible sh -c "ansible-lint roles/role"
|
||
|
||
vault: ## Шифрование/дешифрование с ansible-vault
|
||
docker compose run --rm ansible sh -c "ansible-vault edit --vault-password-file vault-password.txt vars/secrets.yml"
|
||
|
||
deploy: test ## Деплой на реальные машины, если тест прошел успешно
|
||
@echo "Deploying roles to production..."
|
||
docker compose run --rm ansible sh -c "ansible-playbook -i inventory/production deploy.yml --vault-password-file vault-password.txt"
|
||
|
||
####################################################################################################
|
||
# Работа с Git
|
||
####################################################################################################
|
||
push:
|
||
# git config --global user.email "sergey@antropoff.ru"
|
||
# git config --global user.name "Sergey Antropoff"
|
||
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-branch:
|
||
git checkout branch $(name)
|
||
|
||
branch:
|
||
git checkout $(name)
|