# Переменные 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-molecule bash # Запуск тестов Molecule test: docker compose run --rm ansible-molecule sh -c "molecule test" #docker compose run --rm ansible-molecule sh -c "molecule --help" # Установка зависимостей из requirements.yml dependencies: docker compose run --rm ansible-molecule sh -c "ansible-galaxy role install -r /workspace/requirements.yml" # Создание новой роли с помощью Molecule create: docker compose run --rm ansible-molecule sh -c "molecule create" # Шифрование файла с помощью Ansible Vault encrypt: docker compose run --rm ansible-molecule sh -c "ansible-vault encrypt --vault-password-file /workspace/$(VAULT_PASSWORD_FILE) /workspace/role/$(FILE)" # Расшифровка файла с помощью Ansible Vault decrypt: docker compose run --rm ansible-molecule sh -c "ansible-vault decrypt --vault-password-file /workspace/$(VAULT_PASSWORD_FILE) /workspace/role/$(FILE)" # Просмотр зашифрованного файла view: docker compose run --rm ansible-molecule sh -c "ansible-vault view --vault-password-file /workspace/$(VAULT_PASSWORD_FILE) /workspace/role/$(FILE)" # Запуск роли на реальных серверах deploy: docker compose run --rm ansible-molecule sh -c "ansible-playbook -i $(INVENTORY) $(PLAYBOOK) --vault-password-file /workspace/$(VAULT_PASSWORD_FILE)" #################################################################################################### # Работа с 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)