2013-06-03 5 views
5

У меня есть файл config/secrets.yml, который должен находиться на моем удаленном сервере в общей папке. И это не в моем git-репо, поэтому он не обновляется, как другие обычные файлы.как скопировать файл в общую папку capistrano

Я не знаю, как сгенерировать файл в первый раз.

То, что я сделал до того момента, чтобы создать символическую ссылку каждый раз, когда я разворачивать с

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

, который будет «обновление» файла в каждом развертывании, но в первый раз? как сгенерировать secret.yml в первый раз?

ответ

6

Вы должны добавить в файл .gitignore:

/config/secrets.yml 

глухую задача:

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" 

.yml файл в общей папке Обычно я создаю сам.

+0

hmm, «я» - это то, о чем я прошу, должен ли я создать себе этот файл? – juanpastas

+0

@juanpastats, да, вы должны создать этот файл, что-то вроде 'scp /config/secrets.yml you @ yourserver:/var/www/yourapp/shared/config/secrets.yml' будет делать трюк ... – Intentss

0

Если вы используете capistrano v3.x, вы можете легко использовать переменную конфигурации :linked_files для достижения этой цели.

Вы можете смело добавить config/secrets.yml в .gitignore и использовать конфигурационную переменную capistrano's :linked_files.

capistrano обычно добавляет строку шаблона с config/database.yml и config/secrets.yml к массиву, когда вы cap install. Вы просто должны раскомментировать эту строку, которая выглядит как: set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml')

относительно того, как создать файл secrets.yml в первый раз (это одноразовая задача, конечно), вы должны запустить rake secret и положить секрет ключ, сформированный из него, в файле. Это выглядит так:

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 
Смежные вопросы