87 lines
3.7 KiB
Makefile
87 lines
3.7 KiB
Makefile
|
||
view create edit show delete test lint deploy new:
|
||
@true
|
||
|
||
####################################################################################################
|
||
# Управление контейнерами с помощью docker compose
|
||
####################################################################################################
|
||
# Сборка docker-образов
|
||
build:
|
||
cp ~/.ssh/id_rsa .
|
||
docker compose build $(c)
|
||
rm id_rsa
|
||
|
||
# Пересборка docker-образов
|
||
rebuild:
|
||
cp ~/.ssh/id_rsa .
|
||
docker compose build --no-cache $(c)
|
||
rm id_rsa
|
||
|
||
# Удаление docker-контейнеров с полной очисткой неактивных контейнеров
|
||
prune:
|
||
docker system prune -af
|
||
|
||
|
||
####################################################################################################
|
||
# Работа с ролью
|
||
####################################################################################################
|
||
vault:
|
||
@case "$(word 2, $(MAKECMDGOALS))" in \
|
||
show) docker compose run --rm ansible bash -c "ansible-vault view --vault-password-file vault-password.txt vars/secrets.yml";; \
|
||
create) docker compose run --rm ansible bash -c "ansible-vault create --encrypt-vault-id default --vault-password-file vault-password.txt vars/secrets.yml";; \
|
||
edit) docker compose run --rm ansible bash -c "ansible-vault edit --vault-password-file vault-password.txt vars/secrets.yml";; \
|
||
delete) docker compose run --rm ansible bash -c "rm vars/secrets.yml";; \
|
||
*) echo "Unknown action";; \
|
||
esac
|
||
|
||
|
||
role:
|
||
@case "$(word 2, $(MAKECMDGOALS))" in \
|
||
new) \
|
||
clear; \
|
||
echo "Введите название новой роли на английском:"; \
|
||
read ROLE_NAME; \
|
||
echo "Введите описание роли:"; \
|
||
read ROLE_DESC; \
|
||
cp -r default/ "roles/$${ROLE_NAME}"; \
|
||
printf "\n- name: $${ROLE_DESC}" >> roles/deploy.yaml; \
|
||
printf "\n import_playbook: $${ROLE_NAME}/deploy.yaml" >> roles/deploy.yaml; \
|
||
printf '\n - /ansible/roles/%s' "$$ROLE_NAME" >> molecule/default/converge.yml; \
|
||
printf "\n - $${ROLE_NAME}" >> roles/$$ROLE_NAME/deploy.yaml;; \
|
||
lint) \
|
||
clear; \
|
||
echo "Check your role..."; \
|
||
docker compose run --rm ansible bash -c "ansible-vault decrypt --vault-password-file vault-password.txt vars/secrets.yml"; \
|
||
docker compose run --rm ansible bash -c "ansible-lint roles/*"; \
|
||
echo " "; \
|
||
docker compose run --rm ansible bash -c "ansible-vault encrypt vars/secrets.yml --encrypt-vault-id default --vault-password-file vault-password.txt";; \
|
||
test) \
|
||
clear; \
|
||
echo "Running test roles..."; \
|
||
docker compose run --rm ansible bash -c "ansible-vault decrypt --vault-password-file vault-password.txt vars/secrets.yml"; \
|
||
docker compose run --rm ansible bash -c "molecule test --parallel"; \
|
||
echo " "; \
|
||
docker compose run --rm ansible bash -c "ansible-vault encrypt vars/secrets.yml --encrypt-vault-id default --vault-password-file vault-password.txt";; \
|
||
deploy) \
|
||
clear; \
|
||
echo "Deploying roles to production..."; \
|
||
docker compose run --rm ansible bash -c "ansible-playbook /ansible/roles/deploy.yaml";; \
|
||
*) echo "Unknown action";; \
|
||
esac
|
||
|
||
####################################################################################################
|
||
# Работа с Git
|
||
####################################################################################################
|
||
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
|