【发布时间】:2021-08-17 00:50:03
【问题描述】:
我的 gitlab ci-cd 配置文件使用了许多环境变量。为了设置它们,我使用 gitlab ci-cd 秘密变量。
例如dev deploy-part:
- echo "====== Deploy to dev server ======"
# Add target server`s secret key
- apk add git openssh bash
- mkdir ~/.ssh
- echo $DEV_SERVER_SECRET_KEY_BASE_64 | base64 -d > ~/.ssh/id_rsa
- chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
- echo "Test ssh connection for"
- echo "$DEV_SERVER_USER@$DEV_SERVER_HOST"
- ssh -o StrictHostKeyChecking=no -T "$DEV_SERVER_USER@$DEV_SERVER_HOST"
# Delploy
- echo "Setup target server directories"
- TARGET_SERVER_HOST=$DEV_SERVER_HOST TARGET_SERVER_USER=$DEV_SERVER_USER TARGET_SERVER_APP_FOLDER=$DEV_SERVER_APP_FOLDER pm2 deploy pm2.config.js dev setup 2>&1 || true
- echo "make deploy"
- TARGET_SERVER_HOST=$DEV_SERVER_HOST TARGET_SERVER_USER=$DEV_SERVER_USER TARGET_SERVER_APP_FOLDER=$DEV_SERVER_APP_FOLDER pm2 deploy pm2.config.js dev
我在项目中有 5 个存储库和 3 个服务器(dev、preprod、prod)。所以我必须管理许多变量。使用 gitlab ci-cd 秘密变量来管理它们,这很伤人。我看不到它,改变它 - 只删除和创建。我同意将它用于秘密 ssh 密钥,但它不适合指定文件夹、主机等的名称。
还有其他方法可以为 ci-cd 脚本提供变量吗?
【问题讨论】:
-
您是否找到了将 GitLab ENV 传递给脚本的方法(通过 process.env 或其他方法)?
标签: continuous-integration gitlab devops continuous-deployment gitlab-ci-runner