Как я могу использовать учетные данные Rails 5.2 в файле deploy.rb capistrano? - PullRequest
0 голосов
/ 24 июня 2018

Я только что обновил приложение Rails до версии 5.2 и настроил его для использования нового файла config/credentials.yml.enc.

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

NameError: uninitialized constant Rails
/Users/me/Documents/project/config/deploy.rb:27:in `<top (required)>'

Это указывает на эту строку в моем config/deploy.rb файле:

set :rollbar_token, Rails.application.credentials[:rollbar_token]

Похоже, что во время работы capistrano у него нет доступа к Rails.application.credentials.

Как вы все справляетесь с этим? У меня есть идеи ...

  • Установить эту переменную как ENV переменную
    • Мне не нравится, как это разделяет / настраивает этот параметр
  • Каким-то образом сделать так, чтобы capistrano имел доступ к Rails.application.credentials
    • Я не знаю, хорошая ли это идея или есть ли другие вещи, о которых мне нужно знать, если я пойду этим путем
  • Удалить отслеживание развертывания в Rollbar
    • ?♂️

Ответы [ 4 ]

0 голосов
/ 29 сентября 2018

1.Загрузите master.key файл на сервер (только для чтения):Убедитесь, что файл связан In deploy.rb: set :linked_files, fetch(:linked_files, []).push("config/master.key") 3.Убедитесь, что Capfile загружает задачу:

Убедитесь, что у вашего Capfile есть строка

# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
0 голосов
/ 05 августа 2018
require File.expand_path("./environment", __dir__)
puts App::Application.credentials.rollbar_token
0 голосов
/ 11 сентября 2018

Я решил проблему следующим образом:

set :rollbar_token, YAML.load(`rails credentials:show`)['rollbar_token']
0 голосов
/ 24 июня 2018

Я решил это, объявив переменную окружения $ROLLBAR_ACCESS_TOKEN на сервере. Я помещаю это в вершину ~deployer/.bashrc как это:

export ROLLBAR_ACCESS_TOKEN=...

Затем я интегрируюсь с Capistrano, определив эту задачу:

task :set_rollbar_token do
  on release_roles(:all).first do
    set :rollbar_token, capture("echo $ROLLBAR_ACCESS_TOKEN").chomp
  end
end

before "rollbar:deploy", "set_rollbar_token"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...