Che cos'è esattamente un "ruolo" a Capistrano?


86

Qual è lo scopo e la funzione dei "ruoli" in una ricetta Capistrano? Quando guardo delle ricette di esempio, spesso vedo qualcosa del genere:

role :app, 'somedomain.com'
role :web, 'somedomain.com'
role :db,  'somedomain.com', :primary => true

Quindi sembra che un ruolo sia fondamentalmente un server in cui Capistrano esegue i comandi. In tal caso, perché dovrebbe essere chiamato "ruolo" anziché "host" o "server"?

Nell'esempio sopra, qual è la differenza tra i ruoli :appe :web?

Cosa fa l' :primary => trueopzione?

Risposte:


67

I ruoli consentono di scrivere attività capistrano che si applicano solo a determinati server. Questo si applica solo alle distribuzioni multi-server. I ruoli predefiniti di "app", "web" e "db" vengono utilizzati anche internamente, quindi la loro presenza non è facoltativa (AFAIK)

Nell'esempio fornito non è presente alcuna differenza funzionale.

": Primary => true" è un attributo che consente un'ulteriore granularità nella specifica dei server nelle attività personalizzate.

Di seguito è riportato un esempio di specifica del ruolo in una definizione di attività:

task :migrate, :roles => :db, :only => { :primary => true } do
  # ...
end

Vedere il sito Web di capistrano @ https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role per una spiegazione più ampia.


2
Nota anche: la tua riga dovrebbe essere :only => { :primary => true }penso ... o il rolecomando nella domanda dovrebbe essere usato :master => trueinvece. Credo che questi attributi siano interamente in forma libera.
docwhat

3

L'opzione ": primary => true" indica che il server database è il server primario. Ciò è importante, ad esempio, quando si desidera utilizzare la replica con MySQL. Consente di creare un altro server di database con mirroring che può essere utilizzato per il failover automatico. Viene inoltre utilizzato per decidere su quale server di database eseguire le migrazioni del modello (poiché tali modifiche verranno replicate sui server di failover). Questo link lo chiarisce un po 'di più: https://github.com/capistrano/capistrano/wiki/2.x-from-the-beginning#back-to-configuration

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.