Blog
Wie Sie die Version Ihres Google Packer-Quellbildes auf dem neuesten Stand halten

Wenn Sie mit Hashicorp Packer benutzerdefinierte Images für Google Cloud Platform erstellen, geben Sie für die Version des Google-Quell-Images entweder eine feste oder eine aktuelle Version an. Wenn Sie eine feste Version angeben, laufen Sie Gefahr, mit einem veralteten Image zu erstellen. Wenn Sie latest verwenden, kann es sein, dass Ihr Build unwissentlich Änderungen einführt. Da wir den Grundsatz befolgen, alles unter Versionskontrolle zu halten, haben wir ein Dienstprogramm entwickelt, das sicherstellt, dass Ihre Packer-Vorlage immer auf die neueste, explizite Version eines Images verweist.
Wenn Sie ein Google Cloud Platform-Image für eine virtuelle Maschine erstellen, geben Sie entweder die genaue source_image oder die source_image_family an. Die source_image legt Ihr benutzerdefiniertes Image auf eine bestimmte Version fest, während die source_image_family sich auf die neueste Image-Version bezieht.
Dieses Dienstprogramm aktualisiert die source_image in der Packer-Vorlage, damit sie mit der neuesten Version der source_image_family übereinstimmt. Auf diese Weise wird der Build-Prozess zuverlässig. Es gibt die genaue Version an, auf der das Image erstellt wurde, und aktualisiert sie, wenn eine neue Version verfügbar ist.
Wie funktioniert das?
Es ist ganz einfach. Sie benötigen lediglich eine Packer-Vorlage wie unten gezeigt:
{
"builders": [
{
"project_id": "my-project",
"source_image_family": "ubuntu-1804-lts",
"type": "googlecompute"
}
]
}
Um es auf die neueste Version zu aktualisieren, geben Sie ein:
$ gcp-hashicorp-packer-updater -filename tests/source-image-family.json
2021/04/11 11:31:23 updating image from '' to 'ubuntu-1804-bionic-v20210325'
2021/04/11 11:31:23 setting source image project to 'ubuntu-os-cloud'
Die resultierende Packer-Vorlage sieht wie folgt aus:
{
"builders": [
{
"project_id": "my-project",
"source_image": "ubuntu-1804-bionic-v20210325",
"source_image_family": "ubuntu-1804-lts",
"source_image_project_id": "ubuntu-os-cloud",
"type": "googlecompute"
}
]
}
Wie Sie sehen, wird die Version aktualisiert und sowohl die Quellbildfamilie als auch das Quellbildprojekt werden ebenfalls zur Packervorlage hinzugefügt. Wenn Ihre Packer-Vorlage nur eine source_image hat, funktioniert das auf die gleiche Weise.
Installation
Um das Dienstprogramm zu installieren, geben Sie entweder ein:
$ go get github.com/binxio/gcp-hashicorp-packer-updater
Oder laden Sie eine vorkompilierte Binärdatei von github.com/binxio herunter.
Fazit
Mit diesem einfachen Dienstprogramm können Sie die Version des Google-Quellbilds in Ihrer Packer-Vorlage an eine bestimmte Version binden und sie auf dem neuesten Stand halten. Das Dienstprogramm funktioniert nur mit JSON-Dateien, da diese von einem Programm gelesen und aktualisiert werden können. Sobald eine HCL2-Lese-/Schreibbibliothek verfügbar ist, werde ich das Dienstprogramm aktualisieren, um auch diese zu unterstützen.
Bild von Vinson Tan ( 楊 祖 武 ) von Pixabay
Verfasst von

Mark van Holsteijn
Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.
Unsere Ideen
Weitere Blogs
Contact



