Как управлять переменными и секретами env? - PullRequest
0 голосов
/ 10 января 2020

Мальчик, я устал от этого топи c. У меня есть Gitlab CI, локальная среда, связка ключей, keepass, gcp, aws и множество других мест, где хранятся некоторые из моих переменных env. Кроме того, приложения Expo, например, не могут извлекать файлы .env, поэтому мне нужно написать bash сценарии для создания js файлов. Это вредит моему мозгу.

Я хочу иметь уютное место, где я могу безопасно хранить все свои переменные и секреты для каждого проекта и среды. Я хочу поделиться этим со своей командой, CI Servers et c. Я хочу просто указать один ключ: заголовок environemnt. И все переменные должны быть извлечены откуда-то. Есть ли такой инструмент где-нибудь на github или inte rnet ???

Не уверен, подходит ли этот вопрос для stackoverflow, просьба направить меня на правильный форум stackexchange, если это не так.

1 Ответ

0 голосов
/ 14 января 2020

Шифрование файлов и сценариев развертывания файл за файлом, pu sh их для репо. Всякий раз, когда вам нужно переключить среду, просто расшифруйте файлы с помощью ключевого слова среды в имени:

Encrypt. sh

# sh encrypt.sh ./config.production.js passwordhere
echo "encrypting $1"
openssl enc -aes-128-cbc -a -salt -pass pass:$2 -in $1 -out $1.enc
rm $1
mv $1.enc $1
echo "done"

decrypt. sh:

# sh decrypt.sh production passwordhere
echo "decrypting $1 environment"

for file in $(find . -not -path "*/node_modules/*" -name "*.$1*")
do
    echo "decrypting $file to ${file//.$1}"
    openssl enc -aes-128-cbc -a -d -salt -pass pass:$2 -in $file -out "${file//.$1}"
done
...