2013-06-03 17 views
5

Ho il file config/secrets.yml che deve trovarsi nel mio server remoto nella cartella condivisa. E non è nel mio repository git, quindi non è aggiornato come altri file regolari.come copiare un file nella cartella condivisa capistrano

Non so come generare il file la prima volta.

Quello che ho fatto fino al momento è quello di creare un collegamento simbolico ogni volta schiero con

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

che sarà il file "update" in ogni implementare, ma la prima volta? come generare secret.yml la prima volta?

risposta

6

è necessario aggiungere al file .gitignore:

/config/secrets.yml 

il compito tappo:

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" 

Il file .yml nella cartella condivisa in genere creo io stesso.

+0

hmm, la parte "me stesso" è ciò che sto chiedendo, devo creare me stesso quel file? – juanpastas

+0

@juanpastats, sì, devi creare quel file, qualcosa come 'scp /config/secrets.yml tu @ yourserver:/var/www/yourapp/shared/config/secrets.yml' farà il trucco ... – Intentss

0

Se si utilizza capistrano v3.x, è possibile utilizzare facilmente la variabile di configurazione :linked_files per ottenere ciò.

È possibile aggiungere in modo sicuro config/secrets.yml a .gitignore e utilizzare la variabile di configurazione :linked_files di capistrano.

capistrano generalmente aggiunge una linea di modello con config/database.yml e config/secrets.yml all'array quando si cap install. Devi solo decommentare quella linea che assomiglia: set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml')

Per quanto riguarda come generare il file secrets.yml per la prima volta (si tratta di un compito di una volta, ovviamente), non è necessario eseguire rake secret e mettere il segreto chiave generata da esso, nel file. Assomiglia a questo:

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 
Problemi correlati