2014-06-16 16 views
10

Come si esegue la distribuzione su un solo server con Capistrano v3? Tutte le soluzioni che ho trovato sono distribuite su ogni server, quindi, presumo che siano per la v2.Come si distribuisce su un solo server con Capistrano v3?

Non voglio distribuire uno stage, sto già utilizzando il multistaging e desidero eseguire il deployment su un solo server in una delle fasi.

+0

Cosa sono "tutte le soluzioni [trovate]"? Fornire alcuni suggerimenti su cosa non funzionerà per evitare perdite di tempo in risposte non utili. –

+1

Sembra che tu abbia bisogno di un filtro HOST e ROLE. Hai provato come menzionato nel link qui sotto? http://capistranorb.com/documentation/advanced-features/role-filtering/ Una domanda simile è stata trovata anche nel seguente link: http://stackoverflow.com/questions/20783552/can-capistrano-v3-specify-hosts- in-command-line-like-v2-does? rq = 1 – leenasn

+0

La mia risposta ha funzionato per te? – gpupo

risposta

5

Come indicato, in Capistrano 3 il modo di distribuire parti specifiche della tua app su un singolo server utilizza HOST filtering. Immaginiamo che si sta distribuendo direttamente alla produzione e si dispone di questa configurazione in config/deploy/production.rb

set :stage, :production 


server "webserver1.example.com”,   roles: [:web] 

server "appserver1.example.com",   roles: [:app]     
server "appserver2.example.com",   roles: [:app]     
server "appserver3.example.com",   roles: [:app]       

server “dbserver1.example.com”,   roles: [:db] 
server “dbserver2.example.com”,   roles: [:db] 


Poi, se si desidera distribuire soltanto al vostro webserver1, basta eseguire il comando:

cap --hosts=webserver1.example.com production deploy 
+0

I am running cap --host = foo production deploy e ancora, capistrano, verso la fine della distribuzione di questa applicazione rails, si connette alla barra per eseguire alcune attività e fallisce perché la directory di rilascio non esiste. – Pablo

1

È necessario utilizzare le impostazioni multistadio.

Capistrano 3.x è multistadio per impostazione predefinita.

In uno dei suoi stage si definisce solo il server che si desidera.

set :stage, :staging 

server 'staging.zodiacmedia.co.uk', roles: %w{web app db}, port: 22 

set :deploy_to, '/var/www/staging.example.com' 

comando Esegui:

cd /home/deploy/capistrano/example 
cap staging something:to:do 

Questo tutorial è vecchio, ma può aiutare.

+1

Sto già usando il multistadio. Non voglio distribuire a un livello, io uno da distribuire a un server di molti in una delle fasi. – Pablo

Problemi correlati