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