Мой конфигурационный файл gitlab ci-cd использует много переменных env. Чтобы установить их, я использую секретные переменные 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?