Erstellen von Snapshots mit Packer

Was ist Packer?

Packer ist ein von HashiCorp entwickeltes Server-Imaging-Tool. Server-Imaging; oder alternativ unveränderliche Infrastruktur; ist eine beliebte Alternative zu Laufzeitkonfigurationstools wie Ansible oder Puppet. Es basiert auf der Idee, dass Sie einen einmal bereitgestellten Server niemals ändern. Stattdessen stellen Sie einen neuen Server mit Ihren Änderungen bereit und reißen dann den alten herunter. Dies erleichtert die Serverwartung und ermöglicht eine effizientere Skalierung auf einer großen Anzahl von Computern.

Während Packer Vultr nicht sofort unterstützt, gibt es ein Plugin , das diese Unterstützung hinzufügt. Anweisungen zur Installation von Packer mit Vultr-Unterstützung finden Sie in der README-Datei des Plugins. Der Rest dieses Artikels setzt voraus, dass Sie Packer sowie das Vultr-Plugin installiert haben.

Wie es funktioniert

Der Zweck von Packer besteht darin, Server-Images oder Artefakte zu erstellen, mit denen ein neuer Server genau so erstellt werden kann, wie er zum Zeitpunkt der Bildbearbeitung war. Für Vultr werden diese Artefakte als Schnappschüsse bezeichnet. Das Plugin stellt ein neues VPS bereit, führt Ihre definierten Provisioner darauf aus, erstellt einen Snapshot davon und reißt das VPS herunter. Wenn Sie aus Ihrem Image einen neuen Server erstellen möchten, rufen Sie einfach die API von Vultr auf, um einen neuen VPS mit dem gewünschten Snapshot als Betriebssystem bereitzustellen.

Packer verwenden

Packer verwendet eine JSON-Datei, die den Build definiert, der als Eingabe ausgeführt werden soll. Hier ist eine Beispieldatei, die einen Vultr-Build definiert:

{
  "variables": {
    "vultr_api_key": "{{env `VULTR_API_KEY`}}"
  },
  "builders": [
    {
      "type": "vultr",
      "api_key": "{{user `vultr_api_key`}}",
      "snapshot_description": "My Awesome App",
      "region_id": "2",
      "plan_id": "201",
      "os_id": "167",
      "ssh_username": "root"
    }
  ]
}

Diese Datei verfügt über zwei Schlüssel der obersten Ebene variablesund builders. Der variablesSchlüssel wird zum Definieren benutzerdefinierter Variablen verwendet. In diesem Fall wird die VULTR_API_KEYUmgebungsvariable auf eine Weise integriert, die später verwendet werden kann. Der buildersSchlüssel enthält eine Liste der auszuführenden Builds, in diesem Fall nur unseren Vultr-Build. Lassen Sie uns diesen Aufbau ein wenig auflösen:

  • type: Dies definiert den Builder, der tatsächlich verwendet werden soll, und für Vultr-Builds sollte dies immer so sein vultr.
  • api_key: Um den Build auszuführen, benötigen Sie einen API-Schlüssel, der hier definiert ist. In diesem Beispiel wird es als Wert der vultr_api_keyBenutzervariablen definiert, der weiter oben auf den Wert der VULTR_API_KEYUmgebungsvariablen gesetzt wird.
  • snapshot_description: Die Beschreibung des resultierenden Schnappschusses.
  • region_id: Die Region, in der ein VPS bereitgestellt werden soll. Dies wirkt sich nicht auf den endgültigen Snapshot aus, sondern nur auf den Server, von dem aus der Snapshot erstellt wurde.
  • plan_id: Der Plan für den VPS. Zukünftige Verwendungen dieses Schnappschusses müssen einen Plan definieren, der mindestens so groß ist.
  • os_id: Das Betriebssystem, auf dem der Snapshot basiert.
  • ssh_username: Der Benutzername, der verwendet wird, wenn SSH zur Bereitstellung auf dem Server bereitgestellt wird. Bei Linux-Servern ist dies normalerweise der Fall root.

Um es zu verwenden, speichern Sie diese Datei unter einem Namen wie server.jsonund führen Sie den Befehl aus packer build server.json. Es wird eine Ausgabe angezeigt, die den Status des Builds angibt. Dies dauert einige Minuten.

Wenn Sie diesen Build ausführen, wird ein neuer Server mit dem Namen Snapshotting: My Awesome Apperstellt, ein Snapshot erstellt und anschließend zerstört. Das ist alles, was passiert, wenn keine Provisioner definiert sind. Weitere Informationen zum Definieren von Provisionern finden Sie in der Dokumentation von Packer .

Sobald der Build abgeschlossen ist, gibt Packer die ID des resultierenden Snapshots aus.

Region, Plan und Betriebssystem definieren

Diese drei Werte sind für jeden Vultr-Build erforderlich, können jedoch auf verschiedene Arten definiert werden. Für jede Variante sollten Sie genau eine ihrer Variationen angeben, um Mehrdeutigkeiten zu vermeiden:

Region

Regionsinformationen können über die API abgefragt werden: https://www.vultr.com/api/#regions_region_list

  • region_id: Die ID der Region, z 2
  • region_code: Der Code der Region, z ORD

Planen

Planinformationen können über die API abgefragt werden: https://www.vultr.com/api/#plans_plan_list

  • plan_id: Die ID des Plans, z 201

Betriebssystem

Informationen zum Betriebssystem können über die API abgefragt werden: https://www.vultr.com/api/#os_os_list

  • os_id: Die ID des Betriebssystems, z 167


Leave a Comment

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.