# Переменные 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)