Frage Was genau ist eine "Rolle" in Capistrano?


Was ist der Zweck und die Funktion von "Rollen" in einem Capistrano-Rezept? Wenn ich mir Beispielrezepte anschaue, sehe ich oft so etwas:

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

So sieht es aus wie ein Rolle ist im Grunde ein Server wo Capistrano Befehle ausführt. Wenn das der Fall ist, warum sollte es dann eine "Rolle" genannt werden und nicht ein "Host" oder "Server"?

Im obigen Beispiel, was ist der Unterschied zwischen den :app und :web Rollen?

Was macht das? :primary => true Option tun?


76
2017-07-20 18:45


Ursprung


Antworten:


Mit Rollen können Sie Capistrano-Aufgaben schreiben, die nur für bestimmte Server gelten. Dies gilt nur für Multi-Server-Bereitstellungen. Die Standardrollen "app", "web" und "db" werden auch intern verwendet, daher ist ihre Anwesenheit nicht optional (AFAIK)

In der von Ihnen bereitgestellten Stichprobe gibt es keinen funktionalen Unterschied.

Das ": primary => true" ist ein Attribut, das eine weitere Granularität beim Angeben von Servern in benutzerdefinierten Tasks ermöglicht.

Hier ist ein Beispiel für die Rollenspezifikation in einer Taskdefinition:

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

Siehe die capistrano Webseite @ https://github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role für eine ausführlichere Erklärung.


61
2017-07-20 19:28



Die Option ": primary => true" zeigt an, dass der Datenbankserver der primäre Server ist. Dies ist wichtig, wenn Sie beispielsweise die Replikation mit MySQL verwenden möchten. Sie können einen anderen gespiegelten Datenbankserver erstellen, der für das automatische Failover verwendet werden kann. Es wird auch verwendet, um zu entscheiden, auf welchem ​​Datenbankserver die Modellmigrationen ausgeführt werden sollen (da diese Änderungen auf die Failoverserver repliziert werden). Dieser Link verdeutlicht es ein wenig mehr: https://github.com/capistrano/capistrano/wiki/2.x- from- the-beginning # back- to- configuration


3
2017-08-15 10:02