Files
DevOpsLab/Makefile
2025-03-13 11:24:14 +03:00

110 lines
3.9 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Переменные
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
####################################################################################################
# Работа с ролью
####################################################################################################
view create edit view delete test lint deploy:
@true
vault:
@case "$(word 2, $(MAKECMDGOALS))" in \
view) docker compose run --rm ansible bash -c "ansible-vault view --vault-password-file vault-password.txt roles/role/vars/secrets.yml";; \
create) docker compose run --rm ansible bash -c "ansible-vault create --encrypt-vault-id default --vault-password-file vault-password.txt roles/role/vars/secrets.yml";; \
edit) docker compose run --rm ansible bash -c "ansible-vault edit --vault-password-file vault-password.txt roles/role/vars/secrets.yml";; \
delete) docker compose run --rm ansible bash -c "rm roles/role/vars/secrets.yml";; \
*) echo "Unknown action";; \
esac
role:
@case "$(word 2, $(MAKECMDGOALS))" in \
test) \
echo "Running test roles..."; \
docker compose run --rm ansible bash -c "molecule test";; \
lint) \
echo "Check your role..."; \
docker compose run --rm ansible bash -c "ansible-lint roles/role";; \
deploy) \
echo "Deploying roles to production..."; \
docker compose run --rm ansible /usr/bin/sh -c "ansible-playbook -i inventory/production deploy.yml --vault-password-file vault-password.txt";; \
*) echo "Unknown action";; \
esac
####################################################################################################
# Работа с 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)