Loading Makefile +0 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ help: @echo "" @echo "Common usage:" @echo " make build BUILD_NUMBER=100000 HARBOR_PROJECT=harbor.csst.nao:10443/csst/" @echo " make build IMAGE_TAG=test HARBOR_PROJECT=harbor.csst.nao:10443/csst/" @echo " make ansible-update ENV=p368" @echo "" @$(MAKE) -C $(SUBDIR) help Loading README.md +17 −10 Original line number Diff line number Diff line Loading @@ -8,18 +8,27 @@ - **构建/打包/推送镜像**使用 `make` - **部署/升级/启停集群**使用 `make ansible-*`(内部调用 Ansible Playbook) 从源码构建并更新集群(推荐只设置 `BUILD_NUMBER` 作为统一版本号,默认也会作为镜像 tag): 构建镜像(与部署环境 `ENV` 无关;推荐用 `BUILD_NUMBER` 作为统一版本号/镜像 tag): ```bash export ENV=p368 export BUILD_NUMBER=100000 export HARBOR_PROJECT=harbor.csst.nao:10443/csst/ make build make push ``` 部署/更新集群(`ENV` 用于选择 `deploy_configs/<env>/inventory.ini`): ```bash export ENV=p368 export BUILD_NUMBER=100000 export HARBOR_PROJECT=harbor.csst.nao:10443/csst/ make ansible-update ``` 仅部署“已经构建好的镜像”(Harbor 中已存在对应 tag):只需要 `ENV` + 镜像 tag(推荐直接复用 `BUILD_NUMBER`;也可显式设置 `IMAGE_TAG` 覆盖),以及可选的 `HARBOR_PROJECT`。 仅部署“已经构建好的镜像”(Harbor 中已存在对应 tag):无需执行 `make build`,直接部署即可。 ```bash export ENV=csu Loading Loading @@ -57,7 +66,6 @@ make ansible-update 常用命令(在仓库根目录执行即可): ```bash export IMAGE_TAG=test export BUILD_NUMBER=100000 export HARBOR_PROJECT=harbor.csst.nao:10443/csst/ Loading Loading @@ -85,9 +93,9 @@ make ansible-down ``` 说明: - `make pull` 只负责从 `required-images.txt` 拉取第三方镜像,不依赖 `IMAGE_TAG/BUILD_NUMBER/HARBOR_PROJECT`。 - `make push` 只负责把已有 tag 的镜像推送到仓库,不依赖 `BUILD_NUMBER`。 - `make ansible-*` 主要依赖 `ENV` 选择 inventory;同时会把 `IMAGE_TAG`(必传,默认 `latest`)与 `HARBOR_PROJECT`(可选,镜像仓库前缀,如 `harbor.csst.nao:10443/csst/`)作为 Ansible extra vars 传入,用于决定 docker compose 使用的镜像 tag/前缀。 - `make pull` 只负责从 `required-images.txt` 拉取第三方镜像,不依赖 `BUILD_NUMBER/HARBOR_PROJECT`。 - `make push` 会把镜像推送到仓库,镜像 tag 使用 `BUILD_NUMBER`(默认 `latest`)。 - `make ansible-*` 主要依赖 `ENV` 选择 inventory;同时会把 `BUILD_NUMBER`(镜像 tag,默认 `latest`)与 `HARBOR_PROJECT`(可选,镜像仓库前缀,如 `harbor.csst.nao:10443/csst/`)作为 Ansible extra vars 传入,用于决定 docker compose 使用的镜像 tag/前缀。 底层执行的命令形式为: Loading @@ -96,7 +104,7 @@ ansible-playbook \ -i deploy_configs/<env>/inventory.ini \ ansible/<playbook>.yml \ -e env=<env> \ -e image_tag=<image_tag> \ -e build_number=<build_number> \ [-e harbor_project=<harbor_project_prefix>] ``` Loading Loading @@ -136,7 +144,7 @@ ansible-playbook -i deploy_configs/${ENV}/inventory.ini ansible/update.yml -e en 2) `deploy_configs/<env>/inventory.ini`(必需) - 定义部署拓扑(master/worker)、SSH 连接与关键变量(如 `deploy_dir`、`registry_pull`、`harbor_registry`、`extra_hosts`、`jwt_secret`)。`worker` 组支持按主机单独设置 `worker_concurrency`,Ansible 在启动各 worker 时会把该值映射到容器内并发配置。 - 镜像 tag/仓库前缀默认由执行端的 `IMAGE_TAG/HARBOR_PROJECT` 传入(见上文);如需固化到环境配置,也可以在 inventory 的 `[all:vars]` 中设置 `image_tag/harbor_project` 覆盖。 - 镜像 tag/仓库前缀默认由执行端的 `BUILD_NUMBER/HARBOR_PROJECT` 传入(见上文);如需固化到环境配置,也可以在 inventory 的 `[all:vars]` 中设置 `build_number/harbor_project` 覆盖。 3) `deploy_configs/<env>/variables.toml`(可选,但推荐) - `runtime`:唯一的共享运行时环境分组。部署时会同时导入 Airflow Variables(键名固定为 `runtime`)并渲染为 `deploy_configs/<env>/gateway.env`,分别供 DAG 任务执行阶段与 API Gateway 启动阶段使用。 Loading Loading @@ -195,7 +203,6 @@ TeamCity 中推荐直接调用 `make`(仓库根目录的 `Makefile` 会转发 set -e export ENV=p368 export IMAGE_TAG=test export BUILD_NUMBER=100000 export HARBOR_PROJECT=harbor.csst.nao:10443/csst/ Loading docker-celery-3.0.5/Makefile +9 −10 Original line number Diff line number Diff line # 镜像版本和构建相关 IMAGE_TAG ?= $(if $(strip $(BUILD_NUMBER)),$(BUILD_NUMBER),latest) BUILD_NUMBER ?= $(IMAGE_TAG) BUILD_NUMBER ?= latest HARBOR_PROJECT ?= SKIP_JS9 ?= 1 Loading @@ -9,17 +8,17 @@ SKIP_JS9 ?= 1 REQ_FILE := required-images.txt # 业务自定义镜像 TARGET_AIRFLOW := $(HARBOR_PROJECT)csst-airflow:$(IMAGE_TAG) TARGET_API_GATEWAY := $(HARBOR_PROJECT)csst-airflow-api-gateway:$(IMAGE_TAG) TARGET_TASK_PORTAL := $(HARBOR_PROJECT)csst-airflow-task-portal:$(IMAGE_TAG) TARGET_JS9 := $(HARBOR_PROJECT)csst-airflow-js9:$(IMAGE_TAG) TARGET_AIRFLOW := $(HARBOR_PROJECT)csst-airflow:$(BUILD_NUMBER) TARGET_API_GATEWAY := $(HARBOR_PROJECT)csst-airflow-api-gateway:$(BUILD_NUMBER) TARGET_TASK_PORTAL := $(HARBOR_PROJECT)csst-airflow-task-portal:$(BUILD_NUMBER) TARGET_JS9 := $(HARBOR_PROJECT)csst-airflow-js9:$(BUILD_NUMBER) CUSTOM_IMAGE_COUNT := 4 ifeq ($(strip $(SKIP_JS9)),1) CUSTOM_IMAGE_COUNT := 3 endif ANSIBLE_EXTRA_VARS := -e env=$(ENV) -e image_tag=$(IMAGE_TAG) ANSIBLE_EXTRA_VARS := -e env=$(ENV) -e build_number=$(BUILD_NUMBER) ifneq ($(strip $(HARBOR_PROJECT)),) ANSIBLE_EXTRA_VARS += -e harbor_project=$(HARBOR_PROJECT) endif Loading Loading @@ -67,7 +66,7 @@ build: for img in $$(grep -v '^#' $(REQ_FILE) | grep -v '^$$'); do \ basename="$${img##*/}"; \ name="$${basename%%:*}"; \ target="$(HARBOR_PROJECT)$${name}:$(IMAGE_TAG)"; \ target="$(HARBOR_PROJECT)$${name}:$(BUILD_NUMBER)"; \ if docker image inspect $${img} > /dev/null 2>&1; then \ echo "[$${count}/$${total_imgs}] Processing $${img} -> $${target} (Skipping pull, already exists)..."; \ else \ Loading Loading @@ -115,7 +114,7 @@ push: for img in $$(grep -v '^#' $(REQ_FILE) | grep -v '^$$'); do \ basename="$${img##*/}"; \ name="$${basename%%:*}"; \ target="$(HARBOR_PROJECT)$${name}:$(IMAGE_TAG)"; \ target="$(HARBOR_PROJECT)$${name}:$(BUILD_NUMBER)"; \ echo "[$${count}/$${total_imgs}] Pushing $${target}..."; \ docker push $${target}; \ count=$$((count+1)); \ Loading @@ -126,7 +125,7 @@ push: if [ "$(SKIP_JS9)" != "1" ]; then \ echo "[$$(($$total+4))/$${total_imgs}] Pushing $(TARGET_JS9)..." && docker push $(TARGET_JS9); \ fi; \ echo "All $${total_imgs} images pushed successfully to $(HARBOR_PROJECT) with tag $(IMAGE_TAG)." echo "All $${total_imgs} images pushed successfully to $(HARBOR_PROJECT) with tag $(BUILD_NUMBER)." all: clean pull build push Loading docker-celery-3.0.5/ansible/deploy.yml +9 −6 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ _extra_hosts_list: "{{ (extra_hosts | default('') ).split(',') | map('trim') | reject('equalto','') | list }}" _harbor_api_username: "{{ lookup('env', 'HARBOR_USERNAME') | default('', true) }}" _harbor_api_password: "{{ lookup('env', 'HARBOR_PASSWORD') | default('', true) }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Ensure deploy_configs directory exists file: Loading Loading @@ -136,8 +137,7 @@ - name: Build task-portal image (optional) shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ build_number | default(image_tag | default('dev')) }}" export BUILD_NUMBER="{{ _build_number }}" export BUILD_TIME="{{ build_time | default(ansible_facts['date_time']['iso8601']) }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('') }}" Loading @@ -151,8 +151,7 @@ - name: Build api-gateway image (optional) shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ build_number | default(image_tag | default('dev')) }}" export BUILD_NUMBER="{{ _build_number }}" export BUILD_TIME="{{ build_time | default(ansible_facts['date_time']['iso8601']) }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('') }}" Loading @@ -166,7 +165,7 @@ - name: Start Master services (postgres, redis, elasticsearch, airflow core, api, etc.) shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ _build_number }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhaXJmbG93IiwiaWF0IjoxNzU1NDQ3NjMxLCJleHAiOjE3ODY5ODM2MzF9.CbxQayEt370iHhvYXhHMESsk1IWmi8QLMOcctIlbicXhybNtBbfboDUdUDMClwvkSuTjC0AOeSHL23pGyy0plQ') }}" export ENV="{{ _env }}" Loading Loading @@ -214,6 +213,7 @@ _env: "{{ env | default('p368') }}" _deploy_dir: "{{ deploy_dir | default('/opt/csst-airflow') }}" _extra_hosts_list: "{{ (extra_hosts | default('') ).split(',') | map('trim') | reject('equalto','') | list }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Ensure deploy_configs directory exists file: Loading Loading @@ -253,7 +253,7 @@ - name: Start Worker services (celery-worker, filebeat, monitoring) shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ _build_number }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhaXJmbG93IiwiaWF0IjoxNzU1NDQ3NjMxLCJleHAiOjE3ODY5ODM2MzF9.CbxQayEt370iHhvYXhHMESsk1IWmi8QLMOcctIlbicXhybNtBbfboDUdUDMClwvkSuTjC0AOeSHL23pGyy0plQ') }}" export ENV="{{ _env }}" Loading @@ -276,9 +276,12 @@ _env: "{{ env | default('p368') }}" _deploy_dir: "{{ deploy_dir | default('/opt/csst-airflow') }}" _extra_hosts_list: "{{ (extra_hosts | default('') ).split(',') | map('trim') | reject('equalto','') | list }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Restart Flower and API Gateway to ensure they detect new workers shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export BUILD_NUMBER="{{ _build_number }}" export ENV="{{ _env }}" COMPOSE_FILES="-f docker-compose.yaml" Loading docker-celery-3.0.5/ansible/down.yml +4 −2 Original line number Diff line number Diff line Loading @@ -23,11 +23,12 @@ vars: _env: "{{ env | default('p368') }}" _deploy_dir: "{{ deploy_dir | default('/opt/csst-airflow') }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Shutdown Master services shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ _build_number }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhaXJmbG93IiwiaWF0IjoxNzU1NDQ3NjMxLCJleHAiOjE3ODY5ODM2MzF9.CbxQayEt370iHhvYXhHMESsk1IWmi8QLMOcctIlbicXhybNtBbfboDUdUDMClwvkSuTjC0AOeSHL23pGyy0plQ') }}" {{ docker_compose_cmd }} --env-file deploy_configs/airflow.env --profile master down Loading @@ -40,11 +41,12 @@ vars: _env: "{{ env | default('p368') }}" _deploy_dir: "{{ deploy_dir | default('/opt/csst-airflow') }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Shutdown Worker services shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ _build_number }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhaXJmbG93IiwiaWF0IjoxNzU1NDQ3NjMxLCJleHAiOjE3ODY5ODM2MzF9.CbxQayEt370iHhvYXhHMESsk1IWmi8QLMOcctIlbicXhybNtBbfboDUdUDMClwvkSuTjC0AOeSHL23pGyy0plQ') }}" {{ docker_compose_cmd }} --env-file deploy_configs/airflow.env --profile worker down Loading Loading
Makefile +0 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ help: @echo "" @echo "Common usage:" @echo " make build BUILD_NUMBER=100000 HARBOR_PROJECT=harbor.csst.nao:10443/csst/" @echo " make build IMAGE_TAG=test HARBOR_PROJECT=harbor.csst.nao:10443/csst/" @echo " make ansible-update ENV=p368" @echo "" @$(MAKE) -C $(SUBDIR) help Loading
README.md +17 −10 Original line number Diff line number Diff line Loading @@ -8,18 +8,27 @@ - **构建/打包/推送镜像**使用 `make` - **部署/升级/启停集群**使用 `make ansible-*`(内部调用 Ansible Playbook) 从源码构建并更新集群(推荐只设置 `BUILD_NUMBER` 作为统一版本号,默认也会作为镜像 tag): 构建镜像(与部署环境 `ENV` 无关;推荐用 `BUILD_NUMBER` 作为统一版本号/镜像 tag): ```bash export ENV=p368 export BUILD_NUMBER=100000 export HARBOR_PROJECT=harbor.csst.nao:10443/csst/ make build make push ``` 部署/更新集群(`ENV` 用于选择 `deploy_configs/<env>/inventory.ini`): ```bash export ENV=p368 export BUILD_NUMBER=100000 export HARBOR_PROJECT=harbor.csst.nao:10443/csst/ make ansible-update ``` 仅部署“已经构建好的镜像”(Harbor 中已存在对应 tag):只需要 `ENV` + 镜像 tag(推荐直接复用 `BUILD_NUMBER`;也可显式设置 `IMAGE_TAG` 覆盖),以及可选的 `HARBOR_PROJECT`。 仅部署“已经构建好的镜像”(Harbor 中已存在对应 tag):无需执行 `make build`,直接部署即可。 ```bash export ENV=csu Loading Loading @@ -57,7 +66,6 @@ make ansible-update 常用命令(在仓库根目录执行即可): ```bash export IMAGE_TAG=test export BUILD_NUMBER=100000 export HARBOR_PROJECT=harbor.csst.nao:10443/csst/ Loading Loading @@ -85,9 +93,9 @@ make ansible-down ``` 说明: - `make pull` 只负责从 `required-images.txt` 拉取第三方镜像,不依赖 `IMAGE_TAG/BUILD_NUMBER/HARBOR_PROJECT`。 - `make push` 只负责把已有 tag 的镜像推送到仓库,不依赖 `BUILD_NUMBER`。 - `make ansible-*` 主要依赖 `ENV` 选择 inventory;同时会把 `IMAGE_TAG`(必传,默认 `latest`)与 `HARBOR_PROJECT`(可选,镜像仓库前缀,如 `harbor.csst.nao:10443/csst/`)作为 Ansible extra vars 传入,用于决定 docker compose 使用的镜像 tag/前缀。 - `make pull` 只负责从 `required-images.txt` 拉取第三方镜像,不依赖 `BUILD_NUMBER/HARBOR_PROJECT`。 - `make push` 会把镜像推送到仓库,镜像 tag 使用 `BUILD_NUMBER`(默认 `latest`)。 - `make ansible-*` 主要依赖 `ENV` 选择 inventory;同时会把 `BUILD_NUMBER`(镜像 tag,默认 `latest`)与 `HARBOR_PROJECT`(可选,镜像仓库前缀,如 `harbor.csst.nao:10443/csst/`)作为 Ansible extra vars 传入,用于决定 docker compose 使用的镜像 tag/前缀。 底层执行的命令形式为: Loading @@ -96,7 +104,7 @@ ansible-playbook \ -i deploy_configs/<env>/inventory.ini \ ansible/<playbook>.yml \ -e env=<env> \ -e image_tag=<image_tag> \ -e build_number=<build_number> \ [-e harbor_project=<harbor_project_prefix>] ``` Loading Loading @@ -136,7 +144,7 @@ ansible-playbook -i deploy_configs/${ENV}/inventory.ini ansible/update.yml -e en 2) `deploy_configs/<env>/inventory.ini`(必需) - 定义部署拓扑(master/worker)、SSH 连接与关键变量(如 `deploy_dir`、`registry_pull`、`harbor_registry`、`extra_hosts`、`jwt_secret`)。`worker` 组支持按主机单独设置 `worker_concurrency`,Ansible 在启动各 worker 时会把该值映射到容器内并发配置。 - 镜像 tag/仓库前缀默认由执行端的 `IMAGE_TAG/HARBOR_PROJECT` 传入(见上文);如需固化到环境配置,也可以在 inventory 的 `[all:vars]` 中设置 `image_tag/harbor_project` 覆盖。 - 镜像 tag/仓库前缀默认由执行端的 `BUILD_NUMBER/HARBOR_PROJECT` 传入(见上文);如需固化到环境配置,也可以在 inventory 的 `[all:vars]` 中设置 `build_number/harbor_project` 覆盖。 3) `deploy_configs/<env>/variables.toml`(可选,但推荐) - `runtime`:唯一的共享运行时环境分组。部署时会同时导入 Airflow Variables(键名固定为 `runtime`)并渲染为 `deploy_configs/<env>/gateway.env`,分别供 DAG 任务执行阶段与 API Gateway 启动阶段使用。 Loading Loading @@ -195,7 +203,6 @@ TeamCity 中推荐直接调用 `make`(仓库根目录的 `Makefile` 会转发 set -e export ENV=p368 export IMAGE_TAG=test export BUILD_NUMBER=100000 export HARBOR_PROJECT=harbor.csst.nao:10443/csst/ Loading
docker-celery-3.0.5/Makefile +9 −10 Original line number Diff line number Diff line # 镜像版本和构建相关 IMAGE_TAG ?= $(if $(strip $(BUILD_NUMBER)),$(BUILD_NUMBER),latest) BUILD_NUMBER ?= $(IMAGE_TAG) BUILD_NUMBER ?= latest HARBOR_PROJECT ?= SKIP_JS9 ?= 1 Loading @@ -9,17 +8,17 @@ SKIP_JS9 ?= 1 REQ_FILE := required-images.txt # 业务自定义镜像 TARGET_AIRFLOW := $(HARBOR_PROJECT)csst-airflow:$(IMAGE_TAG) TARGET_API_GATEWAY := $(HARBOR_PROJECT)csst-airflow-api-gateway:$(IMAGE_TAG) TARGET_TASK_PORTAL := $(HARBOR_PROJECT)csst-airflow-task-portal:$(IMAGE_TAG) TARGET_JS9 := $(HARBOR_PROJECT)csst-airflow-js9:$(IMAGE_TAG) TARGET_AIRFLOW := $(HARBOR_PROJECT)csst-airflow:$(BUILD_NUMBER) TARGET_API_GATEWAY := $(HARBOR_PROJECT)csst-airflow-api-gateway:$(BUILD_NUMBER) TARGET_TASK_PORTAL := $(HARBOR_PROJECT)csst-airflow-task-portal:$(BUILD_NUMBER) TARGET_JS9 := $(HARBOR_PROJECT)csst-airflow-js9:$(BUILD_NUMBER) CUSTOM_IMAGE_COUNT := 4 ifeq ($(strip $(SKIP_JS9)),1) CUSTOM_IMAGE_COUNT := 3 endif ANSIBLE_EXTRA_VARS := -e env=$(ENV) -e image_tag=$(IMAGE_TAG) ANSIBLE_EXTRA_VARS := -e env=$(ENV) -e build_number=$(BUILD_NUMBER) ifneq ($(strip $(HARBOR_PROJECT)),) ANSIBLE_EXTRA_VARS += -e harbor_project=$(HARBOR_PROJECT) endif Loading Loading @@ -67,7 +66,7 @@ build: for img in $$(grep -v '^#' $(REQ_FILE) | grep -v '^$$'); do \ basename="$${img##*/}"; \ name="$${basename%%:*}"; \ target="$(HARBOR_PROJECT)$${name}:$(IMAGE_TAG)"; \ target="$(HARBOR_PROJECT)$${name}:$(BUILD_NUMBER)"; \ if docker image inspect $${img} > /dev/null 2>&1; then \ echo "[$${count}/$${total_imgs}] Processing $${img} -> $${target} (Skipping pull, already exists)..."; \ else \ Loading Loading @@ -115,7 +114,7 @@ push: for img in $$(grep -v '^#' $(REQ_FILE) | grep -v '^$$'); do \ basename="$${img##*/}"; \ name="$${basename%%:*}"; \ target="$(HARBOR_PROJECT)$${name}:$(IMAGE_TAG)"; \ target="$(HARBOR_PROJECT)$${name}:$(BUILD_NUMBER)"; \ echo "[$${count}/$${total_imgs}] Pushing $${target}..."; \ docker push $${target}; \ count=$$((count+1)); \ Loading @@ -126,7 +125,7 @@ push: if [ "$(SKIP_JS9)" != "1" ]; then \ echo "[$$(($$total+4))/$${total_imgs}] Pushing $(TARGET_JS9)..." && docker push $(TARGET_JS9); \ fi; \ echo "All $${total_imgs} images pushed successfully to $(HARBOR_PROJECT) with tag $(IMAGE_TAG)." echo "All $${total_imgs} images pushed successfully to $(HARBOR_PROJECT) with tag $(BUILD_NUMBER)." all: clean pull build push Loading
docker-celery-3.0.5/ansible/deploy.yml +9 −6 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ _extra_hosts_list: "{{ (extra_hosts | default('') ).split(',') | map('trim') | reject('equalto','') | list }}" _harbor_api_username: "{{ lookup('env', 'HARBOR_USERNAME') | default('', true) }}" _harbor_api_password: "{{ lookup('env', 'HARBOR_PASSWORD') | default('', true) }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Ensure deploy_configs directory exists file: Loading Loading @@ -136,8 +137,7 @@ - name: Build task-portal image (optional) shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ build_number | default(image_tag | default('dev')) }}" export BUILD_NUMBER="{{ _build_number }}" export BUILD_TIME="{{ build_time | default(ansible_facts['date_time']['iso8601']) }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('') }}" Loading @@ -151,8 +151,7 @@ - name: Build api-gateway image (optional) shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ build_number | default(image_tag | default('dev')) }}" export BUILD_NUMBER="{{ _build_number }}" export BUILD_TIME="{{ build_time | default(ansible_facts['date_time']['iso8601']) }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('') }}" Loading @@ -166,7 +165,7 @@ - name: Start Master services (postgres, redis, elasticsearch, airflow core, api, etc.) shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ _build_number }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhaXJmbG93IiwiaWF0IjoxNzU1NDQ3NjMxLCJleHAiOjE3ODY5ODM2MzF9.CbxQayEt370iHhvYXhHMESsk1IWmi8QLMOcctIlbicXhybNtBbfboDUdUDMClwvkSuTjC0AOeSHL23pGyy0plQ') }}" export ENV="{{ _env }}" Loading Loading @@ -214,6 +213,7 @@ _env: "{{ env | default('p368') }}" _deploy_dir: "{{ deploy_dir | default('/opt/csst-airflow') }}" _extra_hosts_list: "{{ (extra_hosts | default('') ).split(',') | map('trim') | reject('equalto','') | list }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Ensure deploy_configs directory exists file: Loading Loading @@ -253,7 +253,7 @@ - name: Start Worker services (celery-worker, filebeat, monitoring) shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ _build_number }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhaXJmbG93IiwiaWF0IjoxNzU1NDQ3NjMxLCJleHAiOjE3ODY5ODM2MzF9.CbxQayEt370iHhvYXhHMESsk1IWmi8QLMOcctIlbicXhybNtBbfboDUdUDMClwvkSuTjC0AOeSHL23pGyy0plQ') }}" export ENV="{{ _env }}" Loading @@ -276,9 +276,12 @@ _env: "{{ env | default('p368') }}" _deploy_dir: "{{ deploy_dir | default('/opt/csst-airflow') }}" _extra_hosts_list: "{{ (extra_hosts | default('') ).split(',') | map('trim') | reject('equalto','') | list }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Restart Flower and API Gateway to ensure they detect new workers shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export BUILD_NUMBER="{{ _build_number }}" export ENV="{{ _env }}" COMPOSE_FILES="-f docker-compose.yaml" Loading
docker-celery-3.0.5/ansible/down.yml +4 −2 Original line number Diff line number Diff line Loading @@ -23,11 +23,12 @@ vars: _env: "{{ env | default('p368') }}" _deploy_dir: "{{ deploy_dir | default('/opt/csst-airflow') }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Shutdown Master services shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ _build_number }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhaXJmbG93IiwiaWF0IjoxNzU1NDQ3NjMxLCJleHAiOjE3ODY5ODM2MzF9.CbxQayEt370iHhvYXhHMESsk1IWmi8QLMOcctIlbicXhybNtBbfboDUdUDMClwvkSuTjC0AOeSHL23pGyy0plQ') }}" {{ docker_compose_cmd }} --env-file deploy_configs/airflow.env --profile master down Loading @@ -40,11 +41,12 @@ vars: _env: "{{ env | default('p368') }}" _deploy_dir: "{{ deploy_dir | default('/opt/csst-airflow') }}" _build_number: "{{ build_number | default('latest') }}" tasks: - name: Shutdown Worker services shell: | export HARBOR_PROJECT="{{ harbor_project | default('') }}" export IMAGE_TAG="{{ image_tag | default('latest') }}" export BUILD_NUMBER="{{ _build_number }}" export MASTER_IP="{{ hostvars[groups['master'][0]]['ansible_host'] | default('127.0.0.1') }}" export JWT_SECRET="{{ jwt_secret | default('eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhaXJmbG93IiwiaWF0IjoxNzU1NDQ3NjMxLCJleHAiOjE3ODY5ODM2MzF9.CbxQayEt370iHhvYXhHMESsk1IWmi8QLMOcctIlbicXhybNtBbfboDUdUDMClwvkSuTjC0AOeSHL23pGyy0plQ') }}" {{ docker_compose_cmd }} --env-file deploy_configs/airflow.env --profile worker down Loading