2014-11-02 8 views
1

신이있는 루비 스크립트를 모니터링하고 AWS 자격 증명을 환경 변수로 전달하려면 어떻게해야할까요?GOD 및 환경 변수 : 자격 증명을 관리하는 방법?

나의 현재 접근 방식 : 나는 GitHub의에 대한 소스 코드와 함께 신 설정 파일을 커밋하고 싶은

그러므로 내가 신 설정 파일에 일반 텍스트로 자격 증명을 설정할 수 없습니다. 대신 시스템 환경 변수로 설정하려고합니다 :

god conf 파일에서 사용자 및 그룹을 설정하여이 특정 사용자로 프로세스가 시작되도록하고이 사용자의 환경 변수로 access_key 및 api_secret을 설정했습니다 .

이 사용자로 로그인하고 환경 변수를 에코하면 올바르게 설정됩니다. 하나님은 신나게 시작됩니다.

신이 스크립트를 시작할 때 환경 변수에서 자격 증명을 찾을 수 없으면 그 이유를 모르겠습니까?

rails_env = ENV['RAILS_ENV'] || "production" 
rails_root = ENV['RAILS_ROOT'] || "/srv/www/photo-api/current" 

God.watch do |w| 
    w.name   = "zipper-done" 
    w.group   = 'zipper' 
    w.interval  = 30.seconds 
    w.dir   = rails_root 
    w.env   = { 'RAILS_ENV' => rails_env } 
    w.start   = "bundle exec rake zip:listen" 
    w.uid   = 'deploy' 
    w.gid   = 'deploy' 
    w.start_grace = 10.seconds 
    w.log   = File.join(rails_root, 'log', 'zipper-done.log') 

/home/deploy/.bashrc

export AWS_ACCESS_KEY_ID=AKI...KQ 
export AWS_SECRET_ACCESS_KEY=Cg...pVb 

/홈/배포/

script.god.rb : 여기

내 conf의 파일입니다 .bash_profile

source ~/.bashrc 

내가 ENV['AWS_ACCESS_KEY_ID']ENV['AWS_SECRET_ACCESS_KEY']을 넣으면 설정되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까 ?

답변

3

어쨌든 파일에 저장하고 있으므로 (예 : Puppet, Chef, heroku config 등을 사용하여 설정하는 대신) dotenv을 사용할 수 있습니다. 당신의 Gemfile에 추가

gem 'dotenv-deployment' 

을 프로젝트의 루트 (ENV['RACK_ENV']이 설정되거나 .env.production 파일 경우) .env 파일에 변수를 추가

AWS_ACCESS_KEY_ID=... 
AWS_SECRET_ACCESS_KEY=... 

그들은 ENV['AWS_ACCESS_KEY_ID']로 사용할 수 있습니다 및 ENV['AWS_SECRET_ACCESS_KEY'].

.env 개의 파일을 .gitignore에 포함해야합니다. 문서화를 위해 .env을 비어있는 값으로 무제한 .env.example으로 복사 할 수 있습니다.

Rails 및 Capistrano 관련 지침은 gem page을 참조하십시오.

+0

이러한 자격 증명은 프로젝트마다 다르므로 더 간단 할 것입니다. – vdaubry

1

스크립트가 실제로 해당 사용자로 로그인하지 않으므로 .bashrc.bash_profile을 소싱하지 않고 해당 환경에 값을 추가합니다. 신이 실행중인 환경 내에서 사용할 수 있도록 환경 변수/값이 필요합니다.

+0

신은 upstart를 통해 시작되었으므로/etc/profile에서 실행 된 스크립트를 통해 자격 증명을 설정하려고했습니다.d 성공하지 못한다면, 내가 뭘 더 할 수 있는지 아십니까? – vdaubry

+1

신을위한 신생 스크립트에서 설정해보십시오. [upstart 스크립트를위한 env vars 설정 방법]에 대한 문서는 다음과 같습니다 (http://upstart.ubuntu.com/cookbook/#environment-variables) –