Verwalten Sie das SFTP-Webprojekt auf mehreren Remote-Webhosts gleichzeitig

362
mimet

Ich habe bereits einige Nachforschungen angestellt, konnte aber leider keine Lösung finden, die ich in meinem Fall tun könnte.

Arbeiten Sie also an LAMP-Stacks und für einen Kunden besteht das Problem, dass Sie gleichzeitig an drei verschiedenen Trunks desselben Projekts arbeiten müssen. Zu diesem Zeitpunkt gibt es also drei Hosts (auf demselben Server):

develop.myproject.ext testing.myproject.ext production.myproject.ext 

Es ist denkbar, dass das Projekt wie folgt vorgeht : 1. Neue Funktionen werden in der developVersion des Projekts entwickelt. 2. Gerade fertiggestellt, werden sie in die testingVersion "kopiert", in der die Tests vom Kunden durchgeführt werden. 3. Wenn alles funktioniert und der Kunde zustimmt werden die Änderungen in der productionVersion angezeigt

Ich verwende Elementary OS und Sublime Text 3 mit dem SFTP-Plugin (bei jeder Bearbeitung einer Datei wird der Speicher automatisch auf den Zielhost geladen).

Im Moment verwende ich eine Methode, die nicht sehr bequem ist, dh eine Datei, in der ich die aktualisierten Dateien für jeden Host verfolge, die sehr zerstreuend ist (ich muss für jeden Host wissen, wo ich welche Datei geladen habe) und die Sache Es ist wahrscheinlich, dass Konflikte entstehen, wenn sie sich in Entwicklung und Test befinden (z. B. Version 1.2 einer developDatei, 1.1 testingund 1.0 production).

Gibt es eine Methodik, kurz ein Programm, die dieses Management erleichtern kann?

Ich habe die Option zur Verwendung von Git (insbesondere Gitlab) bereits geprüft. Dies setzt jedoch voraus, dass sie jedes Mal vom Terminal durchlaufen werden muss (oder das Plugin für Sublime Text verwenden muss), um die Datei zu laden und immer noch drei separate Zweige zu haben. jedoch unüberschaubar (ich brauche nicht alle geschichten und funktionen, die git mir anbietet).

Da alle drei Hosts mit unterschiedlichen Datenbanken arbeiten, ist es sinnvoll, ein Verwaltungstool zu haben, das die gesamte Datenbank automatisch von der Produktion auf die beiden anderen Hosts migriert (der ständig aktualisiert wird). Dies ist jedoch nicht besonders dringend, da ich eine vorübergehende Lösung mit einer Reihe automatischer Bash-Skripts gefunden habe.

Danke an alle, die sich entschließen, mir zu helfen.

3
Die Methodik, nach der Sie suchen, heißt "Continuous Integration". Es kann mit etwas wie Bambus oder ähnlichen Produkten automatisiert werden. Burgi vor 7 Jahren 0
Danke für den Vorschlag, ich wusste nicht, dass es solche Tools gibt. Ich bewerte die beste Option. mimet vor 7 Jahren 0

1 Antwort auf die Frage

1
jrtapsell

Die git-Lösung sollte für jedes Build gut mit Verzweigungen funktionieren

  • Entwickeln
  • Testen
  • Produktion

Der betreffende Zweig kann jedes Mal schnell zum neuen Punkt weitergeleitet werden, wodurch die drei Versionen leichter synchron gehalten werden können.

Beispiel

(1 | DTP)

Sie fügen 2 Commits hinzu, um sich zu entwickeln

(1 | TP) -> (2) -> (3 | D)

Sobald Sie zufrieden sind, können Sie das Testen schnell vorwärts entwickeln

(1 | P) -> (2) -> (3 | DT)

Wenn Sie damit zufrieden sind, beschleunigen Sie die Produktion zum Testen

(1) -> (2) -> (3 | DTP)

Die Commits hier können in Feature-Zweigen zusammengeführt werden oder den von Ihnen bevorzugten Workflow

Was das Hochladen betrifft, können Sie entweder auf den Server ziehen oder, wenn Sie keine Shell erhalten, können Sie für jeden Zweig ein Skript überprüfen und es automatisch an den entsprechenden Server senden.

Wenn diese alle Web - Server sind, dann können Sie einen Server wie Caddy mit einem Plugin wie nutzen diese, die sich automatisch mit Ihrem Repo - Synchronisierung werden, so würde das Skript nicht benötigte sein

Ich bin nicht sehr praktisch in Bezug auf Superuser, daher habe ich eine neue Antwort hinzugefügt, in der ich einige Klarstellungen anfordert (es war zu lang für einen Kommentar). mimet vor 7 Jahren 0