This commit is contained in:
2025-03-20 11:16:54 +03:00
parent 85ccc44d7e
commit 1c3e6949e1
8 changed files with 120 additions and 30 deletions

View File

@@ -1,7 +1,7 @@
# Глобальные переменные
IMAGE ?= ansible
TAG ?= 0.1
REGISTRY ?= hub.cism-ms.ru
REGISTRY ?= hub.cism-ms.ru/ansible
# По умолчанию используем docker. Для локальной разработки используйте docker-compose
RUN_MODE ?= docker
@@ -13,15 +13,16 @@ else ifeq ($(RUN_MODE), docker)
--name $(IMAGE) \
-v $(PWD):/ansible \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
-e ANSIBLE_VAULT_PASSWORD_FILE=/ansible/vault-password.txt \
--privileged \
--workdir /ansible \
$(REGISTRY)/ansible/$(IMAGE)
$(REGISTRY)/$(IMAGE)
else
$(error Invalid RUN_MODE. Use "docker-compose" or "docker")
endif
view create edit show delete test lint deploy new init build rebuild prune release push pull:
view create edit show delete test lint deploy new init build rebuild prune release images push pull shell:
@true
####################################################################################################
@@ -30,14 +31,15 @@ view create edit show delete test lint deploy new init build rebuild prune relea
init:
@echo "Шаг 1: Создание Docker-образа..."
@make docker build
@echo "Шаг 2: Создание нового vault-файла с паролем..."
@echo "Шаг 2: Создание Docker-образов для запуска Molecule..."
@make docker images
@echo "Шаг 3: Создание нового vault-файла с паролем..."
@read -p "Введите пароль для vault: " VAULT_PASSWORD; \
echo "$$VAULT_PASSWORD" > vault-password.txt; \
make vault create
@echo "Шаг 3: Создание нового брэнча в гите..."
@echo "Шаг 4: Создание нового брэнча в гите..."
@make git new
@echo "Шаг 4: Создание новой роли..."
@echo "Шаг 5: Создание новой роли..."
@make role new
####################################################################################################
@@ -47,30 +49,33 @@ docker:
@case "$(word 2, $(MAKECMDGOALS))" in \
build) \
docker buildx create --use --name multiarch-builder --driver docker-container; \
cp ~/.ssh/id_rsa .; \
if [ "$(RUN_MODE)" = "docker-compose" ]; then \
docker compose build $(c); \
else \
docker build -t $(REGISTRY)/ansible/$(IMAGE) .; \
fi; \
rm id_rsa;; \
docker build -t $(REGISTRY)/$(IMAGE) .; \
fi;; \
rebuild) \
docker buildx create --use --name multiarch-builder --driver docker-container; \
cp ~/.ssh/id_rsa .; \
if [ "$(RUN_MODE)" = "docker-compose" ]; then \
docker compose build --no-cache $(c); \
else \
docker build --no-cache -t $(REGISTRY)/ansible/$(IMAGE) .; \
fi; \
rm id_rsa;; \
docker build --no-cache -t $(REGISTRY)/$(IMAGE) .; \
fi;; \
prune) \
docker system prune -af;; \
shell) \
clear; \
echo "Entering to Ansible container shell..."; \
$(RUN) bash ;; \
release) \
docker buildx create --use --name multiarch-builder --driver docker-container; \
cp ~/.ssh/id_rsa .; \
docker login $(REGISTRY); \
docker buildx build -t $(REGISTRY)/ansible/$(IMAGE):$(TAG) -t $(REGISTRY)/ansible/$(IMAGE):latest --platform linux/amd64,linux/arm64 --push .; \
rm id_rsa;; \
docker buildx build -t $(REGISTRY)/$(IMAGE):$(TAG) -t $(REGISTRY)/$(IMAGE):latest --platform linux/amd64,linux/arm64 --push .;; \
images) \
docker buildx create --use --name multiarch-builder --driver docker-container; \
docker login $(REGISTRY); \
docker buildx build -t $(REGISTRY)/centos:latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-CentOS .; \
docker buildx build -t $(REGISTRY)/ubuntu:latest --platform linux/amd64,linux/arm64 --push -f Dockerfile-Ubuntu .;; \
*) echo "Unknown action. Available actions: build, rebuild, prune, release";; \
esac
@@ -84,6 +89,8 @@ vault:
edit) $(RUN) bash -c "ansible-vault edit --vault-password-file vault-password.txt vars/secrets.yml";; \
delete) $(RUN) bash -c "rm vars/secrets.yml";; \
rekey) $(RUN) bash -c "ansible-vault rekey --vault-password-file vault-password.txt vars/secrets.yml";; \
decrypt) $(RUN) bash -c "ansible-vault decrypt --vault-password-file vault-password.txt vars/secrets.yml";; \
encrypt) $(RUN) bash -c "ansible-vault encrypt --encrypt-vault-id default --vault-password-file vault-password.txt vars/secrets.yml";; \
*) echo "Unknown action";; \
esac
@@ -110,7 +117,7 @@ role:
clear; \
echo "Running test roles..."; \
$(RUN) bash -c "ansible-vault decrypt --vault-password-file vault-password.txt vars/secrets.yml"; \
$(RUN) bash -c "molecule test --parallel"; \
$(RUN) bash -c "docker login $(REGISTRY) && molecule test --parallel --destroy=always"; \
$(RUN) bash -c "ansible-vault encrypt vars/secrets.yml --encrypt-vault-id default --vault-password-file vault-password.txt";; \
deploy) \
clear; \