Добавил make release для релиза контейнера в докер реджистри + добавил возможность выбора работы с docker-compose для локальной разработтки и запуск через docker для CI/CD
This commit is contained in:
54
Makefile
54
Makefile
@@ -2,23 +2,49 @@
|
|||||||
IMAGE ?= ansible
|
IMAGE ?= ansible
|
||||||
TAG ?= 0.1
|
TAG ?= 0.1
|
||||||
REGISTRY ?= hub.cism-ms.ru
|
REGISTRY ?= hub.cism-ms.ru
|
||||||
|
# По умолчанию используем docker. Для локальной разработки используйте docker-compose
|
||||||
|
RUN_MODE ?= docker
|
||||||
|
|
||||||
|
# Определение команды RUN в зависимости от RUN_MODE
|
||||||
|
ifeq ($(RUN_MODE), docker-compose)
|
||||||
|
RUN = docker compose run --rm $(IMAGE)
|
||||||
|
else ifeq ($(RUN_MODE), docker)
|
||||||
|
RUN = docker run -it --rm \
|
||||||
|
--name $(IMAGE) \
|
||||||
|
-v $(PWD):/ansible \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
-e ANSIBLE_VAULT_PASSWORD_FILE=/ansible/vault-password.txt \
|
||||||
|
--privileged \
|
||||||
|
--workdir /ansible \
|
||||||
|
$(REGISTRY)/ansible/$(IMAGE)
|
||||||
|
else
|
||||||
|
$(error Invalid RUN_MODE. Use "docker-compose" or "docker")
|
||||||
|
endif
|
||||||
|
|
||||||
view create edit show delete test lint deploy new:
|
view create edit show delete test lint deploy new:
|
||||||
@true
|
@true
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# Управление контейнерами с помощью docker compose
|
# Управление контейнерами с помощью docker compose или docker run
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# Сборка docker-образов
|
# Сборка docker-образов
|
||||||
build:
|
build:
|
||||||
cp ~/.ssh/id_rsa .
|
cp ~/.ssh/id_rsa .
|
||||||
|
ifeq ($(RUN_MODE), docker-compose)
|
||||||
docker compose build $(c)
|
docker compose build $(c)
|
||||||
|
else
|
||||||
|
docker build -t $(REGISTRY)/ansible/$(IMAGE) .
|
||||||
|
endif
|
||||||
rm id_rsa
|
rm id_rsa
|
||||||
|
|
||||||
# Пересборка docker-образов
|
# Пересборка docker-образов
|
||||||
rebuild:
|
rebuild:
|
||||||
cp ~/.ssh/id_rsa .
|
cp ~/.ssh/id_rsa .
|
||||||
|
ifeq ($(RUN_MODE), docker-compose)
|
||||||
docker compose build --no-cache $(c)
|
docker compose build --no-cache $(c)
|
||||||
|
else
|
||||||
|
docker build --no-cache -t $(REGISTRY)/ansible/$(IMAGE) .
|
||||||
|
endif
|
||||||
rm id_rsa
|
rm id_rsa
|
||||||
|
|
||||||
# Удаление docker-контейнеров с полной очисткой неактивных контейнеров
|
# Удаление docker-контейнеров с полной очисткой неактивных контейнеров
|
||||||
@@ -31,20 +57,18 @@ release:
|
|||||||
docker buildx build -t $(REGISTRY)/ansible/$(IMAGE):$(TAG) --platform linux/amd64,linux/arm64 --push .
|
docker buildx build -t $(REGISTRY)/ansible/$(IMAGE):$(TAG) --platform linux/amd64,linux/arm64 --push .
|
||||||
rm id_rsa
|
rm id_rsa
|
||||||
|
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# Работа с ролью
|
# Работа с ролью
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
vault:
|
vault:
|
||||||
@case "$(word 2, $(MAKECMDGOALS))" in \
|
@case "$(word 2, $(MAKECMDGOALS))" in \
|
||||||
show) docker compose run --rm ansible bash -c "ansible-vault view --vault-password-file vault-password.txt vars/secrets.yml";; \
|
show) $(RUN) bash -c "ansible-vault view --vault-password-file vault-password.txt vars/secrets.yml";; \
|
||||||
create) docker compose run --rm ansible bash -c "ansible-vault create --encrypt-vault-id default --vault-password-file vault-password.txt vars/secrets.yml";; \
|
create) $(RUN) bash -c "ansible-vault create --encrypt-vault-id default --vault-password-file vault-password.txt vars/secrets.yml";; \
|
||||||
edit) docker compose run --rm ansible bash -c "ansible-vault edit --vault-password-file vault-password.txt vars/secrets.yml";; \
|
edit) $(RUN) bash -c "ansible-vault edit --vault-password-file vault-password.txt vars/secrets.yml";; \
|
||||||
delete) docker compose run --rm ansible bash -c "rm vars/secrets.yml";; \
|
delete) $(RUN) bash -c "rm vars/secrets.yml";; \
|
||||||
*) echo "Unknown action";; \
|
*) echo "Unknown action";; \
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
||||||
role:
|
role:
|
||||||
@case "$(word 2, $(MAKECMDGOALS))" in \
|
@case "$(word 2, $(MAKECMDGOALS))" in \
|
||||||
new) \
|
new) \
|
||||||
@@ -61,21 +85,19 @@ role:
|
|||||||
lint) \
|
lint) \
|
||||||
clear; \
|
clear; \
|
||||||
echo "Check your role..."; \
|
echo "Check your role..."; \
|
||||||
docker compose run --rm ansible bash -c "ansible-vault decrypt --vault-password-file vault-password.txt vars/secrets.yml"; \
|
$(RUN) bash -c "ansible-vault decrypt --vault-password-file vault-password.txt vars/secrets.yml"; \
|
||||||
docker compose run --rm ansible bash -c "ansible-lint roles/*"; \
|
$(RUN) bash -c "ansible-lint roles/*"; \
|
||||||
echo " "; \
|
$(RUN) bash -c "ansible-vault encrypt vars/secrets.yml --encrypt-vault-id default --vault-password-file vault-password.txt";; \
|
||||||
docker compose run --rm ansible bash -c "ansible-vault encrypt vars/secrets.yml --encrypt-vault-id default --vault-password-file vault-password.txt";; \
|
|
||||||
test) \
|
test) \
|
||||||
clear; \
|
clear; \
|
||||||
echo "Running test roles..."; \
|
echo "Running test roles..."; \
|
||||||
docker compose run --rm ansible bash -c "ansible-vault decrypt --vault-password-file vault-password.txt vars/secrets.yml"; \
|
$(RUN) bash -c "ansible-vault decrypt --vault-password-file vault-password.txt vars/secrets.yml"; \
|
||||||
docker compose run --rm ansible bash -c "molecule test --parallel"; \
|
$(RUN) bash -c "molecule test --parallel"; \
|
||||||
echo " "; \
|
$(RUN) bash -c "ansible-vault encrypt vars/secrets.yml --encrypt-vault-id default --vault-password-file vault-password.txt";; \
|
||||||
docker compose run --rm ansible bash -c "ansible-vault encrypt vars/secrets.yml --encrypt-vault-id default --vault-password-file vault-password.txt";; \
|
|
||||||
deploy) \
|
deploy) \
|
||||||
clear; \
|
clear; \
|
||||||
echo "Deploying roles to production..."; \
|
echo "Deploying roles to production..."; \
|
||||||
docker compose run --rm ansible bash -c "ansible-playbook /ansible/roles/deploy.yaml";; \
|
$(RUN) bash -c "ansible-playbook /ansible/roles/deploy.yaml";; \
|
||||||
*) echo "Unknown action";; \
|
*) echo "Unknown action";; \
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
- **make build** - создание контейнера
|
- **make build** - создание контейнера
|
||||||
- **make rebuild** - пересоздание контейнера, если были внесены изменения в Dockerfile
|
- **make rebuild** - пересоздание контейнера, если были внесены изменения в Dockerfile
|
||||||
- **make prune** - очистить систему от лишних образов
|
- **make prune** - очистить систему от лишних образов
|
||||||
|
- **make release** - собирает образ контейнера и пушит его в докер реджистри
|
||||||
|
|
||||||
### Работа с ролью
|
### Работа с ролью
|
||||||
- **make role new** - создать новую роль из шаблона. Название роли пишется на английском, описание роли на любом языке
|
- **make role new** - создать новую роль из шаблона. Название роли пишется на английском, описание роли на любом языке
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
30376237306137343436646138333634613432346133323130646136633466643964336637306434
|
64643732316637616663343739653439343061343163633365653364303163616365323038633733
|
||||||
3963303237623565666462393234653266333036363538370a643739633530313766363035633266
|
6331663939323536363830643332343434316265643363370a653034323061303632353163663362
|
||||||
37623335383861333034653064613865396332653561356333346333373533353561663431323539
|
33353639336631633663643337356238333631363166643961346431633137356236323562363361
|
||||||
6365636662376666380a636332333435636662303732623531613661313835376636383664373534
|
3431366263393334300a303461643261363465613931633061366635623162353664343264393932
|
||||||
30363830383731666334653635366236323262326432326338366237383533366231
|
35653434646636663831623431656231393630616331623863643132663466323636
|
||||||
|
|||||||
Reference in New Issue
Block a user