Я развертываю приложение для рельсов с Capistrano. Я хочу сохранить некоторые ключи API на сервере в качестве переменной среды. Эти ключи API должны быть доступны для моего приложения rails, которое развертывается с Capistrano. Эти ключи API также должны быть доступны для отдельного рубинового файла, который запускается как демон.Ключи Capistrano и API в переменных ENV?
Установка ключей API в переменных окружения представляется идеальным решением, однако я не могу получить к ним доступ в моем приложении с рельсами с ENV["SOME_KEY"]
.
В соответствии с this post, поскольку capistrano работает как не интерактивный, а не логин, ~/.bashrc
и ~/.bash_profile
не загружены. Блок-схема предполагает, что я должен использовать $BASH_ENV
.
Могу ли я просто добавить ключи api в $BASH_ENV
и получить к ним доступ в моем приложении rails и в рубиновом файле, который является демоном с ENV["SOME_KEY"]
?
Я также думаю о простое добавление ключей api к файлу где-то на сервере и символическое привязывание его к файлу dir и rails файла ruby и просто открытию и чтению. Возможно ли это?
Я лично предпочел хранить секреты и такие в файлах в директории, которая не включена в систему управления версиями после экспериментов с получением переменные окружения, которые будут должным образом распространяться. Просто будь осторожен! – ollpu
Оформить заказ драгоценного камня dotenv, он в основном делает то, что сказал @ollpu. https://github.com/bkeepers/dotenv – Teddy
@ollpu: Таким образом, в основном добавление файлов вручную в рельсы после развертывания? Как вы читаете эти файлы после добавления их в каталог? – MeesterPatat