From d03d83cd3e3de109559f3a6c9edc8df1edc7c6e9 Mon Sep 17 00:00:00 2001 From: Sergey Antropoff Date: Mon, 17 Mar 2025 14:21:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B8=D0=BD=D0=B8=D1=86=D0=B8=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8E=20make=20init?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 103 ++++++++++++++++++++------------- README.md | 19 ++++-- default/tasks/debian/main.yaml | 2 +- vars/secrets.yml | 6 -- 4 files changed, 76 insertions(+), 54 deletions(-) delete mode 100644 vars/secrets.yml diff --git a/Makefile b/Makefile index b636f9c..7347415 100644 --- a/Makefile +++ b/Makefile @@ -24,38 +24,51 @@ endif view create edit show delete test lint deploy new: @true +#################################################################################################### +# Инициализация новой роли +#################################################################################################### +init: + @echo "Шаг 1: Создание Docker-образа..." + @make docker build + + @echo "Шаг 2: Создание нового vault-файла с паролем..." + @read -p "Введите пароль для vault: " VAULT_PASSWORD; \ + echo "$$VAULT_PASSWORD" > vault-password.txt; \ + make vault create + + @echo "Шаг 3: Создание новой роли..." + @make role new + #################################################################################################### # Управление контейнерами с помощью docker compose или docker run #################################################################################################### -# Сборка docker-образов -build: - cp ~/.ssh/id_rsa . -ifeq ($(RUN_MODE), docker-compose) - docker compose build $(c) -else - docker build -t $(REGISTRY)/ansible/$(IMAGE) . -endif - rm id_rsa - -# Пересборка docker-образов -rebuild: - cp ~/.ssh/id_rsa . -ifeq ($(RUN_MODE), docker-compose) - docker compose build --no-cache $(c) -else - docker build --no-cache -t $(REGISTRY)/ansible/$(IMAGE) . -endif - rm id_rsa - -# Удаление docker-контейнеров с полной очисткой неактивных контейнеров -prune: - docker system prune -af - -release: - cp ~/.ssh/id_rsa . - docker login $(REGISTRY) - docker buildx build -t $(REGISTRY)/ansible/$(IMAGE):$(TAG) --platform linux/amd64,linux/arm64 --push . - rm id_rsa +docker: + @case "$(word 2, $(MAKECMDGOALS))" in \ + build) \ + 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;; \ + rebuild) \ + 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;; \ + prune) \ + docker system prune -af;; \ + release) \ + cp ~/.ssh/id_rsa .; \ + docker login $(REGISTRY); \ + docker buildx build -t $(REGISTRY)/ansible/$(IMAGE):$(TAG) --platform linux/amd64,linux/arm64 --push .; \ + rm id_rsa;; \ + *) echo "Unknown action. Available actions: build, rebuild, prune, release";; \ + esac #################################################################################################### # Работа с ролью @@ -104,15 +117,23 @@ role: #################################################################################################### # Работа с Git #################################################################################################### -push: - 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 \ No newline at end of file +git: + @case "$(word 2, $(MAKECMDGOALS))" in \ + push) \ + 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) \ + read -p "Введите имя новой ветки (без префикса cluster-): " BRANCH_NAME; \ + NEW_BRANCH="cluster-$$BRANCH_NAME"; \ + git checkout -b $$NEW_BRANCH; \ + echo "Создана и переключена на новую ветку: $$NEW_BRANCH";; \ + *) echo "Unknown action. Available actions: push, pull, cluster-branch";; \ + esac \ No newline at end of file diff --git a/README.md b/README.md index b4d2b17..6af31f2 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,16 @@ На вашей машине вам необходимо сбилдить образ, где будут запускаться все роли через docker-compose. -- **make build** - создание контейнера -- **make rebuild** - пересоздание контейнера, если были внесены изменения в Dockerfile -- **make prune** - очистить систему от лишних образов -- **make release** - собирает образ контейнера и пушит его в докер реджистри +Это можно сделать самостоятельно: + +- **make docker build** - создание контейнера +- **make docker rebuild** - пересоздание контейнера, если были внесены изменения в Dockerfile +- **make docker prune** - очистить систему от лишних образов +- **make docker release** - собирает образ контейнера и пушит его в докер реджистри + +Или ввести команду: + +- **make init** - которая создаст файл секретов с паролем. Сбилдит образ. И создаст новую роль. ### Работа с ролью - **make role new** - создать новую роль из шаблона. Название роли пишется на английском, описание роли на любом языке @@ -31,8 +37,9 @@ ### Работа с Git -- **make push** - запушить изменения. С выбором ветки и вводом коммита. -- **make pull** - получить изменения из репы +- **make git push** - запушить изменения. С выбором ветки и вводом коммита. +- **make git pull** - получить изменения из репы +- **make git new** - создание нового брэнча имя cluster-branch_name для IaC подхода. ### Добавить свой образ контейнера для тестов diff --git a/default/tasks/debian/main.yaml b/default/tasks/debian/main.yaml index 2b67c3c..4c32e03 100644 --- a/default/tasks/debian/main.yaml +++ b/default/tasks/debian/main.yaml @@ -1,4 +1,4 @@ --- - name: Пример таски debug: - msg: "Привет! Я запустился на Debian/Ubuntu! Переменная role_test равна {{ role_test }}" + msg: "Привет! Я запустился на Debian/Ubuntu!" diff --git a/vars/secrets.yml b/vars/secrets.yml deleted file mode 100644 index ddbbc03..0000000 --- a/vars/secrets.yml +++ /dev/null @@ -1,6 +0,0 @@ -$ANSIBLE_VAULT;1.1;AES256 -64643732316637616663343739653439343061343163633365653364303163616365323038633733 -6331663939323536363830643332343434316265643363370a653034323061303632353163663362 -33353639336631633663643337356238333631363166643961346431633137356236323562363361 -3431366263393334300a303461643261363465613931633061366635623162353664343264393932 -35653434646636663831623431656231393630616331623863643132663466323636