Ho sempre appena creato compiti cap per ogni target deploy e li hanno usati nella riga di comando:
# deploy.rb
task :stage do
server 10.0.0.1 ...
end
> cap stage deploy
è possibile definire anche personalizzare le attività all'interno di ogni compito di destinazione, come ad esempio un deploy che fa pulizia in messa in scena, ma non in produzione.
Dato che questi compiti di destinazione sono raramente molto grandi, non ho mai veramente visto il punto di qualcosa come l'installazione delle estensioni dei berretti per multistadio, ma suppongo che le situazioni di altri possano essere diverse.
Penso che la produzione dovrebbe essere separata dagli altri ambienti, altrimenti c'è il rischio che processi non funzionanti nella messa in scena o simili possano influenzare le prestazioni di produzione.
A volte definisco le attività di protezione per comodità nella messa in scena, come ad esempio la distruzione del database e il ricaricamento dal dump di produzione più recente. Queste attività dovrebbero controllare il loro obiettivo di distribuzione tramite una variabile impostata o simili e rifiutarsi di correre per la produzione come assicurazione contro un errore di battitura a tarda notte.
Si tende a mettere un sacco di comportamento personalizzato nel deploy.rb, ma ho trovato che questo tende a mordere e richiede un sacco di sforzo di manutenzione come il tuo ambiente o la modifica della cap api.
Un'altra pratica che ho visto con ambienti più grandi è di avere un account di shell con un checkout che tiene traccia del ramo stabile appositamente impostato per agire come il punto di controllo capistrano. Ssh in ed esegui i comandi cap lì invece che localmente. Questo può aiutare a evitare problemi in cui deploy.rb del checkout locale ha modifiche che non sei pronto per utilizzare con la distribuzione in produzione. Questo è meno un problema con git vs svn, ma bisogna stare attenti a pensare a cosa sia il loro deploy.rb locale nel momento in cui stanno eseguendo i comandi cap.
Heroku sta rendendo davvero facile questa roba in questi giorni, e EY e altri non sono esattamente indietro.
fonte
2009-06-07 05:00:00
Spiacente, ho dovuto rimuovere i due collegamenti ipertestuali a quei post del blog per poter pubblicare la domanda. Chiunque sia interessato a saperne di più può Google quegli elementi per andare direttamente ai post. – trisignia
Perché hai dovuto rimuovere i collegamenti ipertestuali? –
Sono un nuovo utente qui e StackOverflow non mi permetterà ancora di pubblicare collegamenti ipertestuali nelle mie domande. – trisignia