3 Stimmen

Capistrano Mehrere Server: Wie kann man während der Bereitstellung auf den aktuellen Server verweisen?

Einige Hintergrundinformationen, ich benutze capistrino 2.9.0 und capistrano-ext 1.2.1. Die mehrstufige Bereitstellung funktioniert wie erwartet. Ebenso wie das Hinzufügen von Arrays von Servern zu den Rollen.

INSTANCES = ["this.server.com", "that.server.com"]
role(:web) {INSTANCES}  

Ich habe versucht, :deploy_to dazu zu bringen, einen Pfad zu erzeugen, der auf dem Namen des Servers basiert, der bereitgestellt wird, etwa so:

set :deploy_to, lambda { "/var/www/application/$HOSTNAME" }

Das funktioniert ziemlich gut, außer dass this.server.com und that.server.com tatsächlich derselbe Host sind. In diesem Beispiel werden statt zwei Bereitstellungsordnern, die auf den in der Datei deploy/stage.rb definierten Servernamen basieren, nur ein Ordner /var/www/application/server.com/ erzeugt

Ich habe herumgegraben und nach einer Möglichkeit gesucht, dies entweder auf der Capistrano-Ebene zu injizieren oder eine Shell-Variable zu referenzieren, die diese Details beibehalten würde. Es scheint wie brauchen, um einen Anwendungsserver mit mehreren Instanzen einer Anwendung zu hosten wäre üblich.

Was ich wirklich brauche, ist:

set :deploy_to, lambda { "/var/www/application/$SERVER_NAME_CAP_IS_USING" }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X