Есть ли решение Secret_Key как для Heroku prod'n, так и для локальных разработчиков?

Я пытаюсь найти лучшее решение для хранения секретных ключей (в частности, ключи S3 и разработки — это те, которые я пытаюсь настроить), что позволит моему приложению работать как локально, так и на Heroku. Мое исследование до сих пор (почти целый день на это :()) показывает мне несколько вариантов, однако у меня были проблемы с каждым, которые я описываю ниже:

  • Вариант 1) Использование предоставленного файла .gitignored rails 4.1 secrets.yml прекрасно подходит для разработки, вы просто используете Rails.application.secrets._secret_ в учетных данных s3 в своей модели, и все в порядке. Но при отправке в Heroku вам нужно heroku config:set key=value для каждой переменной, что само по себе хорошо, но тогда вам нужно заменить синтаксис Rails.application.secrets... на ENV['key'], и это делает рельсы, предназначенные secrets.yml и соответствующий хороший синтаксис, непригодными для использования. Единственный способ, которым я вижу, как это работает, - это с ENV, установленным как локально, так и на героку, немного утомительно, и он не будет использовать предназначенный для рельсов файл secrets.yml.

  • Вариант 2) Использование гема «figaro» — это хорошо, поэтому драгоценный камень создает для вас файл application.yml и .gitignores его для вас, а также предоставляет удобную команду rake для массового создания Heroku ENV. Но я не понимаю, как вы собираетесь использовать одну и ту же версию приложения как для локальной разработки, так и для рабочей среды heroku без необходимости снова устанавливать ENV в каждой среде. Хорошо, figaro ускоряет настройку ENV на героку с помощью команды rake, но все же делает secrets.yml бесполезным и требует установки ENV для каждого ключа в каждой среде.

  • Вариант 3) Я нашел еще один драгоценный камень; gem 'heroku_secrets', github: 'alexpeattie/heroku_secrets', который призван облегчить нашу жизнь. Этот драгоценный камень, похожий на фигаро, обеспечивает рейк-комендацию для массового набора Heroku ENVs. Но я предполагаю, что это по-прежнему оставляет нам одну и ту же проблему набора ENV повсюду. Однако я даже не смог зайти так далеко с этим драгоценным камнем, при попытке использовать его я столкнулся с этим сообщением об ошибке;

    git://github.com/alexpeattie/heroku_secrets.git (на мастере) еще не проверен. Сначала запустите bundle install.

Ни bundle, ни bundle install здесь ничего не делают, и поиск по этой проблеме заставил меня попробовать bundle install --deployment, который вместо того, чтобы идентифицировать и решать проблему, предлагает обходное решение, помещая все мои драгоценные камни в каталог поставщика, а не то, как это настроено. я отменил это изменение.

  • Другие варианты) dotenv - не пробовал, foreman - не пробовал, предварительно загружая файл, содержащий vars перед rails.initialize, пробовал, но не понравилось.

После всех сегодняшних поисков, игр, попыток реализовать и повторно реализовать варианты вышеперечисленного и многое другое, я все еще не понимаю, как заставить это приложение работать как в героку, так и в локальной среде разработки достойным образом. Я, конечно, хотел бы добиться этого, используя рельсы secrets.yml, предназначенные для настройки без особых настроек, но я сделаю то, что мне нужно, чтобы это заработало. Я очень новичок в этом деле разработчика, поэтому мне требуется больше времени, чем большинству, чтобы разобраться в вещах, но это действительно поставило меня в тупик, и я твердо держу голову в руках, прося о помощи, пожалуйста, покажи мне свет, о гении программирования.

Вот некоторые другие ссылки, которые я нашел, прочитал и с некоторыми попытался реализовать, если это поможет в этом вопросе:

Справочные страницы конфигурации Heroku: https://devcenter.heroku.com/articles/config-vars#setting-up-config-vars-for-a-deployed-application

Тесно связанный вопрос; Как сделать вы управляете секретными ключами и героку с помощью Ruby on Rails 4.1.0beta1?

Статья о различных решениях; http://www.gotealeaf.com/blog/managing-environment-configuration-variables-in-rails

Еще одна статья о различных решениях; http://tammersaleh.com/posts/managing-heroku-environment-variables-for-local-development/

Ошибка "Блок не проверен"; не извлечен... установка пакета НЕ исправляет помогите!

Тем не менее, несмотря на все это обсуждение, я не могу найти способ заставить это работать как в локальной среде разработки, так и в рабочей среде heroku без ручной установки ENVs. Есть ли способ, и если да, пожалуйста, просветите меня.


person jbk    schedule 09.02.2015    source источник