Eine Einführung in gsclient-go

Datum: 30.10.2019

Golang ClientDa Golang so viel Zugkraft gewonnen hat, haben wir im November 2018 mit der Implementierung der Unterstützung für die Sprache begonnen. Seitdem haben wir viele Funktionen implementiert: Unterstützung für Endpunkte, Implementierung von Tests und Hinzufügen von High-End-Dokumentation. Daher sind wir stolz darauf nun v2.0.0 unseres gsclient-go zu veröffentlichen.

Dieser Beitrag wird dich kurz in unsere Golang-Bibliothek einführen, einige Konzepte erklären und dir beim Einstieg helfen.

Die neueste Version bringt einige wichtige Updates:

  • Aktivierung des Synchronisationsmodus
  • Standard-Ressourcenkonfigurationen
  • Automatischer Wiederholungsversuch nach Erhalt der Fehlercodes 5xx und 424
  • Vollständig kontrollierte Bibliothek durch Kontext

Erste Schritte

Zunächst wird ein gridscale-Konto benötigt, das hier angelegt werden kann. Dann solltest du ein API-Token erstellen und go installieren.

Installiere daraufhin unser gsclient-go mit `go get „github.com/gridscale/gsclient-go“`.

@nvthongswansea hat in letzter Zeit eine Menge Arbeit geleistet, um das Release v2.0.0.0 zu ermöglichen. Er hat den Einstieg noch einfacher gemacht und uns einige Beispiele für den Einstieg gegeben. Wir werden uns hier das Beispiel server.go ansehen.

Authentifizierung

Wir legen unsere Anmeldeinformationen als Umgebungsvariablen fest.

`export GRIDSCALE_TOKEN=“API_TOKEN“ GRIDSCALE_UUID=“USER_UUID“`

Ersetze das API_TOKEN & USER_UUID durch deine API-Anmeldeinformationen.



Ein einfaches Setup erstellen

Navigiere zum Verzeichnis gsclient-go.

`cd $GOPATH/src/github.com/gridscale/gsclient-go/examples/`

Wenn du `go run server.go` ausführst, durchläufst du nun diese Schritte und wirst dabei aufgefordert, die Eingabetaste zu drücken, bevor du jeden Schritt ausführst:

  1. Erstelle einen neuen Server mit `CreateServer()`.
  2. Hole dir erstellten Server mit `GetServer()`.
  3. Starte den erstellten Server mit `StartServer()`als Test.
  4. Schalte es mit `ShutdownServer()` wieder aus – dies ist ein ACPI-Shutdown. Die Alternative, aber weniger sicher, ist `StopServer()`.
  5. Aktualisiere die Details und Ressourcen des Servers mit `UpdateServer()`.
  6. Drucke das Ereignisprotokoll des erstellten Servers mit `GetServerEventList()`.
  7. Erstelle einen Speicher mit `CreateStorage()`.
  8. Erstelle ein Netzwerk mit `CreateNetwork()`.
  9. Erstellen eine IP-Adresse mit `CreateIP()`.
  10. Erstelle ein ISO-Image mit `CreateISOImage()` – Dies lädt ein Image von tinycorelinux.net herunter.
  11. Du kannst dann alle erstellten Ressourcen mit `LinkStorage()`, `LinkNetwork()`, `LinkIP()` und `LinkIsoImage()` verknüpfen.

Dann wirst du aufgefordert, die Verknüpfung aufzuheben und alle erstellten Ressourcen zu löschen. Dies kannst du entweder mit `Enter` bestätigen oder mit `Ctrl+c` verlassen, um die Ressourcen zu erhalten und selbst einige weitere Schritte zu unternehmen.

Du kannst die anderen Dateien im Beispielverzeichnis ausprobieren, sie sind ziemlich umfangreich, also sollte die Anpassung an deine Bedürfnisse recht simpel sein.

Viel Spaß beim Verwalten der Infrastruktur mit golang! Diese Bibliothek ist auch die Grundlage für unsere Terraform-Integration.


Marc Harriss

Marc Harriss | Product Owner
Marc ist unser Product Owner. Er beschäftigt sich intensiv mit allen Prozessen rund um unsere Produkte. In Zusammenarbeit mit den Entwicklungsteams kümmert er sich um eine kontinuierliche Wertsteigerung der Software-Produkte. Seine Philosophie ist die Produktentwicklung aus Sicht des Kunden. Seine Leidenschaften sind Software und die Frage danach, wie Dinge funktionieren. Durch seine professionellen Erfahrungen in IT- und Logistic-Start-ups ist er es gewohnt, in interdisziplinären Teams zu arbeiten und Projekte schnell voranzubringen.

Zurück zur Übersicht