110 lines
3.9 KiB
Makefile
110 lines
3.9 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
|
||
|
||
####################################################################################################
|
||
# Работа с ролью
|
||
####################################################################################################
|
||
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)
|