2013-06-03 19 views
5

Mam plik config/secrets.yml, który musi znajdować się na moim serwerze zdalnym w udostępnionym folderze. I nie jest to w moim repozytorium git, więc nie jest aktualizowane jak inne zwykłe pliki.jak skopiować plik do wspólnego folderu Capistrano

Nie wiem, jak wygenerować plik za pierwszym razem.

Co mam zrobić do momentu jest stworzenie dowiązania symbolicznego każdorazowo wdrożyć z

run "ln -nfs #{shared_path}/config/secrets.yml #{release_path}/config/secrets.yml" 

który będzie „update” plik w każdy wdrożenia, ale to po raz pierwszy? jak wygenerować secret.yml za pierwszym razem?

Odpowiedz

6

Trzeba dodać do pliku .gitignore:

/config/secrets.yml 

zadanie CAP:

task :symlink_config, roles: :app do 
    run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml" 
    run "ln -nfs #{shared_path}/config/secrets.yml #{release_path}/config/secrets.yml" 
end 
after "deploy:finalize_update", "deploy:symlink_config" 

Plik .yml w folderze udostępnionym zazwyczaj tworzę to sam.

+0

hmm, część "mnie" jest tym, o co pytam, czy muszę sam stworzyć ten plik? – juanpastas

+0

@juanpastats, tak, musisz utworzyć ten plik, coś w stylu 'scp /config/secrets.yml you @ yourserver:/var/www/yourapp/shared/config/secrets.yml' zrobi sztuczkę ... – Intentss

0

Jeśli używasz Capistrano v3.x, możesz łatwo użyć zmiennej konfiguracyjnej :linked_files, aby to osiągnąć.

Możesz bezpiecznie dodać config/secrets.yml do .gitignore i użyć zmiennej konfiguracyjnej capistrano :linked_files.

Capistrano zazwyczaj dodaje do szablonu tablicę z config/database.yml i config/secrets.yml, gdy cap install. Po prostu trzeba odkomentować tą linię, która wygląda tak: set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml')

chodzi jak wygenerować plik secrets.yml po raz pierwszy (jest to zadanie jednorazowe oczywiście), to trzeba uruchomić rake secret i umieścić w tajemnicy klucz wygenerowany z niego, w pliku. Wygląda to tak:

development: 
    secret_key_base: <some alphanumeric hash> 
    some_key: 338a3312d82 
    some_secret: f5d9c3214e7b 
    other_environment: development 
    other_password: password 

production: 
    secret_key_base: <the key generated with `rake secret`> 
    some_key: 338a3312d82 
    some_secret: f5d9c3214e7b 
    other_environment: development 
    other_password: password 
Powiązane problemy