2013-06-03 44 views
5

Tôi có tệp config/secrets.yml phải nằm trong máy chủ từ xa trong thư mục dùng chung. Và nó không có trong repo git của tôi, vì vậy nó không được cập nhật như các tập tin thông thường khác.cách sao chép tệp vào thư mục chia sẻ capistrano

Tôi không biết cách tạo tệp lần đầu tiên.

Những gì tôi đã làm cho đến thời điểm này là để tạo ra một liên kết tượng trưng mỗi khi tôi triển khai với

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

mà sẽ "cập nhật" tập tin trong từng triển khai, nhưng lần đầu tiên? làm thế nào để tạo ra secret.yml lần đầu tiên?

Trả lời

6

Bạn cần phải thêm vào tập tin .gitignore của bạn:

/config/secrets.yml 

nhiệm vụ nắp:

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" 

File .yml trong thư mục chia sẻ Tôi thường tạo ra nó bản thân mình.

+0

hmm, 'bản thân mình' là những gì tôi hỏi, tôi có phải tự tạo tệp đó không? – juanpastas

+0

@ juanpastats, vâng bạn phải tạo tập tin đó, một cái gì đó như 'scp /config/secrets.yml bạn @ yourserver của bạn:/var/www/yourapp/shared/config/secrets.yml' sẽ làm thủ thuật ... – Intentss

0

Nếu bạn đang sử dụng capistrano v3.x, bạn có thể dễ dàng sử dụng biến cấu hình :linked_files để đạt được điều này.

Bạn có thể thêm an toàn config/secrets.yml vào .gitignore và sử dụng biến cấu hình của sốcủa capistrano.

capistrano thường thêm dòng mẫu với config/database.ymlconfig/secrets.yml vào mảng khi bạn cap install. Bạn chỉ cần phải bỏ ghi chú dòng giống như: set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml')

Về làm thế nào để tạo ra các tập tin secrets.yml cho lần đầu tiên (nó là một nhiệm vụ một lần tất nhiên), bạn không cần phải chạy rake secret và đặt bí mật khóa được tạo ra từ nó, trong tệp. Có vẻ như sau:

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 
Các vấn đề liên quan