Packer soll Umgang mit virtuellen Entwicklungsumgebungen in agilen Workflow integrieren

Packer – DevOps-Tool zur vereinfachten Image-Generierung auf virtuellen Maschinen
Keine Kommentare

Packer ist ein DevOps-Tool der Vagrant-Macher von HashiCorp. Wir stellen das Open-Source-Werkzeug vor, mit dem sich Images virtueller Maschinen für unterschiedliche Plattformen auf Basis einer Single-Source-Konfiguration erstellen lassen.

Packer soll die Erstellung der Machine-Images automatisieren, deutlich beschleunigen und die Nutzung aller Standard-DevOps-Tools integrieren. Kann das den produktiven Workflow und eine moderne agile Methode in der Softwareentwicklung fördern? Den Entwicklern zufolge ja.

Packer – Funktionsumfang

Trotz der zahlreichen Vorzüge von Images virtueller Maschinen oder Containern empfinden es viele Entwickler häufig eher als lästig und zeitaufwendig sie zu generieren und zu verwalten. Besonders die spätere Konfiguration und das Durchführen regelmäßiger Sicherheitsupdates verkompliziert die Handhabung gerne etwas. Fehlende Tools zur Erstellung automatisierter Machine-Images und aufwendige Software führten laut den Packer-Machern oft dazu, dass der agile Workflow gestört wurde.

„Packer changes all of this“, versichern die Entwickler:

„Packer brings pre-baked images into the modern age, unlocking untapped potential and opening new opportunities.”

Packer soll dabei jedoch kein Ersatz für Systemkonfigurationssoftware wie Chef oder Puppet sein. Doch das in der kompilierbaren Programmiersprache Go geschriebene Tool kann diese Tools dazu benutzen, um Software auf dem Image zu installieren und Container-Images zu erstellen.

Ebenso ist Packer nicht die richtige Wahl für Developer, die schnell eine Entwicklungsumgebung mit der aktuellsten Konfiguration erstellen wollen. Denn Packer konzentriert sich auf die Erstellung der Images und nicht wie Vagrant darauf, die Entwicklungsumgebung zum Laufen zu bringen. Packern sollte somit als Erweiterung von DevOps-Software wie Chef, Puppet oder Vagrant verstanden werden. Denn lediglich in Kombination mit anderen Toolswird Packer effizient.

Weil Packer ein einzelnes, portables Eingabeformat als Template verwendet, um die Images für multiple Plattformen zu generieren, lassen sich gleichzeitig unterschiedliche – aber identische – virtuelle Maschinen (etwa AMIs oder VMware-Maschinen) erzeugen.

Das folgende Video von OpenStack veranschaulicht ausführlich, wie sich mit Packer eigene Images aufsetzen lassen:

Schnelle Virtualisierung und multiple Provider

Laut dem Entwicklerteam von HashiCorp bietet Packer gegenüber anderer Software vier wichtige Vorzüge:

  • Sehr schnelle Entwicklung von Infrastrukturen. Die Packer-Images sollen es erlauben, vollständig konfigurierte Maschinen ebenso wie virtuelle Maschinen innerhalb weniger Sekunden zu starten.
  • Übertragbarkeit auf multiple Provider. Laut vieler Nutzer kann Packer identische Images für multiple Plattformen generieren. Somit lässt sich die Produktion etwa in AWS, das Staging bzw. die QA in OpenStack und das Development mit Desktop-Virtualisierungssoftware wie VMware oder VirtualBox realisieren.
  • Verbesserte Stabilität. Packer installiert und konfiguriert die Software bereits mit der Generierung des Images. Das soll dabei helfen, Bugs in den Skripten frühzeitig zu erkennen.
  • Erhöhte Testability. Nach der Generierung eines Images kann schnell überprüft werden, ob die virtuelle Maschine in der ihr angedachten Weise arbeitet. Ist dies der Fall, verspricht HashiCorp, könne man sicher sein, dass alle weiteren von diesem Image aus gestarteten Maschinen ihren Dienst tun.

Von Vagrant zu Packer: Hashimoto und der Open-Source-Gedanke

Die Entwicklungsgeschichte von Packer ist maßgeblich von der Vagrants geprägt. Daher lohnt sich ein kurzer Blick auf die Anfänge von Vagrant.

Am 28. Juni 2013, dem Release-Day von Packer 0.1, erinnerte Entwickler Mitchell Hashimoto an die Vorteile, die Packer gegenüber der 0.1-Version von Vagrant (veröffentlicht 2010) zu bieten habe.

Vagrant war damals nur auf dem Mac betriebsfähig, es ließ sich nur mit VirtualBox betreiben, konnte ausschließlich Ubuntu-Maschinen emulieren und funktionierte nur mit serverless Chef. Doch diese Limitierungen, so Hashimoto, konnten dank einer regen Beteiligung der Vagrant-Community mit der Zeit abgebaut werden. Die heutige Architektur ist auch das Verdienst dieser Community-Arbeit. Hashimoto ruft jeden Interessierten sich am Packer-Projekt zu beteiligen, um Ähnliches wie im Fall von Vagrant zu erreichen:

„With the announcement today, I’m inviting anyone and everyone to play with Packer and to get involved with the open source project. There are so many ways to get involved. The most fun might be adding more builders, the components that build images for specific platforms. There are already a handful of committers on the project and I’m looking to add more.”

Fazit

Packer ist ein interessantes DevOps-Tool, das die Arbeit mit den Images virtueller Maschinen und Containern in ein agiles Arbeitsumfeld integrieren kann, ohne den Workflow zu bremsen. Aber nur in Kombination mit Tools wie Puppet, Chef oder Vagrant kann es seine Effizienz für das Entwicklerteam und die Administration entfalten. Auch muss bemerkt werden, dass sich in Foren und Blogbeiträgen kaum Negatives über das DevOps-Tool finden lässt. Die Funktionalität der vorgestellten Features scheint gegeben.

Installation, Konfiguration und Dokumentation von Packer werden auf der Projektseite anhand erläuterter Code-Beispiele veranschaulicht. Hier findet sich ebenfalls der Link zum Download des Tools und eine Liste der unterstützten Plattformen und der grundlegenden Basisbefehle der Software.

Name Packer
Hersteller HashiCorp
Projektwebsite https://www.packer.io/
GitHub https://github.com/mitchellh/packer
Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -