Пофиксил униерсальность и добавил centos и ubuntu

This commit is contained in:
2025-03-13 17:38:44 +03:00
parent 0c3bacfe9c
commit b6286aa9b7
28 changed files with 229 additions and 101 deletions

View File

@@ -1,86 +1,59 @@
# Переменные
ROLE_NAME ?= my_new_role
VAULT_PASSWORD_FILE ?= vault_password_file
INVENTORY ?= /workspace/inventory/hosts # Путь к инвентори внутри контейнера
PLAYBOOK ?= /workspace/role/playbook.yml # Путь к playbook внутри контейнера
view create edit show delete test lint deploy:
@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)
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/*/
rm id_rsa
# Удаление 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";; \
show) docker compose run --rm ansible bash -c "ansible-vault view --vault-password-file vault-password.txt roles/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/vars/secrets.yml";; \
edit) docker compose run --rm ansible bash -c "ansible-vault edit --vault-password-file vault-password.txt roles/vars/secrets.yml";; \
delete) docker compose run --rm ansible bash -c "rm roles/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) \
clear; \
echo "Check your role..."; \
docker compose run --rm ansible bash -c "ansible-lint roles/role";; \
docker compose run --rm ansible bash -c "ansible-vault decrypt --vault-password-file vault-password.txt roles/vars/secrets.yml"; \
docker compose run --rm ansible bash -c "ansible-lint roles/*"; \
echo " "; \
docker compose run --rm ansible bash -c "ansible-vault encrypt roles/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 roles/vars/secrets.yml"; \
docker compose run --rm ansible bash -c "molecule test --parallel"; \
echo " "; \
docker compose run --rm ansible bash -c "ansible-vault encrypt roles/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 /usr/bin/sh -c "ansible-playbook -i inventory/production deploy.yml --vault-password-file vault-password.txt";; \
docker compose run --rm ansible bash -c "ansible-playbook /ansible/roles/deploy.yaml";; \
*) echo "Unknown action";; \
esac
@@ -88,8 +61,6 @@ role:
# Работа с 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; \
@@ -101,9 +72,3 @@ push:
pull:
git pull
new-branch:
git checkout branch $(name)
branch:
git checkout $(name)