Editieren und Programmieren von Webseiten mit UNIX-Editoren ist zwar möglich, aber mühevoll und fehleranfällig. Ich benutze daher folgenden Workflow:
Visual Studio Code (VS Code) ist ein freier Quelltext-Editor von Microsoft. Er ist plattformübergreifend für die Betriebssysteme Windows, macOS und Linux verfügbar. Ich habe schon mit einigen freien Editoren gearbeitet, VS Code ist für das Programmieren mit JavaScript und React für mich der beste und ich kann ihn guten Gewissens weiterempfehlen. Den Editor können Siehier downloaden.
Ein Thema bei diesem Editor sind die Erweiterungen. Da ich überwiegend mit JavaScript, React und React-Native arbeite, habe ich folgende 19 Erweiterungen installiert, auf die ich, bis auf die Remote-SSH-Erweiterungen, nicht weiter eingehen möchte.
Um über VS Code Zugriff auf die VM-Instanz zu erhalten, brauchen Sie eine private und öffentliche SSH-Schlüsseldatei. Wie Sie diese Dateien zeugen können isthier unter "Neuen SSH-Schlüssel erstellen"beschrieben.
Bei der Schlüsselerstellung müssen Sie ihren Benutzernamen in der virtuellen Maschine und ein frei gewähltes Passwort angeben. Ihr Benutzernamen in der VM wird als Prompt im SSH-Browserfenster angezeigt, im untenstehenden Bild ist er "anton_betonl@web-node-server". Die Adresse, die hinter dem @ angegeben ist, scheint egal zu sein, funktioniert hat der Verbindungsaufbau auch mit dem Benutzernamen "anton_beton@gmail.com". Das Passwort wird bei jedem neuen Verbindungsaufbau zur virtuellen Maschine abgefragt.
Die Schlüssel, die Sie erzeugen sollten in etwa wie folgt aussehen:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDFmS/xtMBIbcuqYKJ5TXXEAe+eH4VEIaI+AmhC0nnRetKt8djPOEJYidQ3HLREOZ8Dui7UV6zAuTPFxgVAsSe1FcRc7Lno52xJlSVhPu0h2W528YLpnDvORr1DZPYt1A+jNdv0meM4UMy3UwbMCYGEP/WZaXVQ9iRcS4PrRJu9KOS0aCSw8+ktA39DPKYVfIFF6CFwn8Q6kRnc0QMwR11xC2c67edqGdcNlk4w8lzPMxqMAk7MwYn+d1Xf4ykp2woV94/YXR68SeXXk7aznhvNvx2kfTjFXrRgm2ksR3k+JRJ7iVTaUCfl+siuJLa25PAF5qELhgeGhLoYsHGUoBfPIjA4k7iz46AXiIBV0Dz+dCTiRFuoHUUKjF9rRwjKzfq56tD9e5irqzzISZMS+CNYoArSHIjzUCzQTBeHXTGL32lInZ3/R3w1df4mew3Dh+N091HFjn/121vz20+gpXDM1o89TJI0pLIO1wmcA0yE49uztre9FZFrUkOib+8eDB8=abc_defg@gmail.com
öffentlicher Schlüssel
-----BEGIN OPENSSH PRIVATE KEY-----b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBYvOxDGeL4FlcucpmDZowVAAAAEAAAAAEAAAGXAAAAB3NzaC1yc2EAAAADAQABAAABgQDFmS/xtMBIbcuqYKJ5TXXEAe+eH4VEIaI+AmhC0nnRetKt8djPOEJYidQ3HLREOZ8Dui7UV6zAuTPFxgVAsSe1FcRc7Lno52xJlSVhPu0h2W528YLpnDvORr1DZPYt1A+jNdv0meM4UMy3UwbMCYGE... etwa 35 weitere Zeilen ...pKFecuCOWqkuKNJCR8S0gtgDlPs=-----END OPENSSH PRIVATE KEY-----
privater Schlüssel
Den öffentlichen Schlüssel müssen wir der VM bekanntgeben. Wir wählen dazu in der GC Konsole die Menüpunkte Compute Engine, Metadaten und dort den Reiter SSH-Schlüssel. Weiter klicken wir auf Bearbeiten, Zeile hinzufügen, kopieren in das sich öffnende Feld den öffentlichen Schlüssel und speichern das Ganze ab. Das war's.
Sie haben VS Code mit den ErweiterungenRemote - SSHundRemote - SSH: Editing Configuration Filesinstalliert.
Bevor wir die Verbindung zur virtuellen Maschine herstellen können, müssen wir diese in die Konfigurationsdatei der VS Code Erweiterung eintragen. Hierzu klicken wir auf das Symbol des Remote Window, ganz unten links im VS Code Fenster.
Es öffnet sich in der oberen Zeile ein Menü aus dem wir den Punkt "Remote-SSH: Open Configuration-File" wählwen. Dann werden einige Dateien angezeigt, in die die Konfiguration geschrieben werden kann. Die Dateinamen und -orte sind vermutlich betriebssystemabhängig, ich wähle immer den obersten.
In die Konfigurationsdatei tragen Sie folgende Daten ein:
Host 35.192.166.139 <-- die öffentliche IP-Adresse der VMHostName 35.192.166.139 <-- die öffentliche IP-Adresse der VMIdentityFile /Users/peter/.ssh/web-node-server <-- Datei mit privatem SchlüsselUser anton_beton <-- der Benutzer der VM-Maschine,den Sie beim Erstellen der Schlüsselangegeben haben
Konfiguration von SSH in VS Code
Um eine Verbindung mit der virtuellen Maschine herzustellen klicken wir in der linken Seitenleiste von VS Code auf den Remote Explorer. Es öffnet sich das Fenster der SSH Targets. Dort finden wir den gerade in der Konfigurationsdatei eingetragenen Server. Wir klicken mit der rechten Maustaste auf die Adresse und wählen "Connect to Host in New Window". Es öffnet sich ein neues Fenster und ganz oben erscheint eine Eingabezeile für das Passwort, das wir bei der Schlüsselerstellung haben.
Nach der Eingabe des Passwortes dauert es eine Weile, dann sind wir mit der virtuellen Maschine verbunden. Das kann man wieder in der untersten Zeile des Editors erkennen. Durch Klicken auf "Open Folder" im VS-Code Hauptmenu werden die Verzeichnisse vom Homeverzeichnisses der virtuellen Maschine angezeigt. Wir wählen das früher erstellte Verzeichnis helloWorld und können jetzt die Datei app.js direkt auf der virtuellen Maschine editieren. Leider ist die Verbindung nicht stabil genug. Ich editiere lieber örtlich und kopiere die Dateien zum Server.
Zum Kopieren können wir die Dateien einfach anklicken und in das Explorer Fenster des VS Code Fensters der virtuellen Maschine ziehen, sogar aus dem örtlichen VS-Code Fenster.
Zusätzliche Hinweise für die für die Einrichtung und Benutzung gibt eshier.
Google bietet für seine Cloud ein Software Development Kit (SDK) an, mit dem Ressourcen und Anwendungen in der Cloud verwaltet werden können. Wir wollen von diesen Tools lediglich das Befehlszeilen Tool gcloud benutzen, um Dateien vom PC zum Server zu kopieren. Die Installation des SDK und die weiteren Schritte sindhierfür verschiedene Plattformen beschrieben. Nach der Installation müssen wir "gcloud init" in einem Kommandofenster (Terminal etc.) auf dem PC ausführen.
gcloud init......Which Google Compute Engine zone would you like to use as projectdefault?If you do not specify a zone via a command line flag while workingwith Compute Engine resources, the default is assumed.[1] us-east1-b[2] us-east1-c[3] us-east1-d[4] us-east4-c[5] us-east4-b[6] us-east4-a[7] us-central1-c[8] us-central1-a[9] us-central1-f[10] us-central1-b....8Your project default Compute Engine zone has been set to [us-central1-a].You can change it by running [gcloud config set compute/zone NAME].Your project default Compute Engine region has been set to [us-central1].You can change it by running [gcloud config set compute/region NAME].
SDK initialisieren
Je nachdem, wie der Zugriff auf die Google Cloud bereits autorisiert ist, werden Sie entweder aufgefordert, sich über einen Webbrowser anzumelden und den Zugriff für ihr Konto zu gewähren oder ein vorhandenes Konto auszuwählen. Wählen Sie anschließend das Google Cloud-Projekt aus (in unserem Fall: web-node-server), wenn Sie dazu aufgefordert werden. Wenn nur ein einziges Projekt existiert, wählt gcloud init dieses aus. Das Kommando:
gcloud config configurations list
SDK initialisierenn
listet die bestehenden Konfigurationen auf. Die Antwort sollte wie folgt aussehen.
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGIONdefault True xxxx.yyyy@gmail.com web-node-server us-central1-a us-central1
SDK initialisieren
Zum Testen legen wir in einem Verzeichnis 2 Dateien an und geben in einem Kommandofenster (Terminal etc.) folgende Kommandofolge ein:
% gcloud compute scp --recurse Pfad-zu-den-Testdateien/* xxxx.yyyy@web-node-server:~/helloWorld/Google antwortet:Enter passphrase for key '/Users/peter/.ssh/google_compute_engine':nur Return, Google antwortet:Enter passphrase for key '/Users/peter/.ssh/web-node-server':wir geben das Passwort ein, Google antwortet:cpToVM.sh 100% 1888 14.2KB/s 00:00testfile.js 100% 0 0.0KB/s 00:00testfile2.js 100% 0 0.0KB/s 00:00
"gcloud compute scp" testen
Hinweise: