Blog
Wie Sie verweilende Packer-Instanzen auf Google Cloud Platform löschen

HashiCorp Packer ist ein großartiges Tool zur Erstellung von Images virtueller Maschinen für eine Vielzahl von Plattformen, einschließlich Google Cloud. Normalerweise startet Packer eine GCE-Instanz, erstellt das Maschinen-Image auf ihr und beendet die Instanz nach Abschluss. Manchmal wird der Prozess jedoch abgebrochen und die Instanz läuft weiter und verursacht unnötige Cloud-Ausgaben. In diesem Blog stelle ich ein Dienstprogramm vor, mit dem sich verweilende Packer-Instanzen löschen lassen.
Das Dienstprogramm gcp-hashicorp-packer-reaper hält alle Packer Builder GCE-Instanzen an oder beendet sie. Sie verwenden es über das Befehlszeilendienstprogramm oder installieren es als Cloud Run-Dienst, so dass alte Instanzen automatisch beendet werden.
den Sensenmann installieren
um den Packer Reaper zu installieren, geben Sie ein:
$ pip install gcp-hashicorp-packer-reaper
Mit diesem Dienstprogramm können Sie jede GCE-Instanz auflisten, anhalten oder beenden, deren Name mit packer- beginnt und deren Beschreibung New instance created by Packer lautet. Es gibt keine weitere Überprüfung, ob es sich bei der Instanz tatsächlich um einen von Packer gestarteten Rechner handelt. Der Name ist ziemlich eindeutig, aber wenn Sie Instanzen mit demselben Namenspräfix und derselben Beschreibung starten, werden auch diese ausgewählt.
Packer-Instanzen anzeigen
Um laufende Packer-Instanzen anzuzeigen:
$ gcp-hashicorp-packer-reaper list
packer-5e99d4f2-b5a5-e9e0-b763-cd5102ae7e73 launched 7 minutes ago in your-project - europe-west4-c - RUNNING
INFO: 1 packer builder instances found
Packer-Instanzen anhalten
Um die Ausführung von Packer-Instanzen, die älter als 2 Stunden sind, zu stoppen:
$ gcp-hashicorp-packer-reaper stop --older-than 2h
INFO: stopping packer-5e99d4f2-b5a5-e9e0-b763-cd5102ae7e73 in your-project created 3 hours ago
INFO: total of 1 running instances stopped
Packer-Instanzen löschen
Um gestoppte und laufende Packer-Instanzen, die älter als 24 Stunden sind, zu beenden:
gcp-hashicorp-packer-reaper --verbose delete --older-than 24h
INFO: deleting packer-5e99d4f2-b5a5-e9e0-b763-cd5102ae7e73 in your-project created 2 days ago
INFO: total of 1 instances deleted
den Packer Reaper einsetzen
Um den Packer Reaper als Dienst in Ihrem Projekt einzusetzen, geben Sie ein:
git clone https://github.com/binxio/gcp-hashicorp-packer-reaper.git
cd gcp-hashicorp-packer-reaper
PROJECT=$(gcloud config get-value project)
make USERNAME=$PROJECT snapshot
cd terraform
terraform init
terraform apply -var project=$PROJECT -auto-approve
Dadurch wird der Packer Reaper in Ihrem GCP-Projekt installiert und alle 10 Minuten ausgeführt, und Instanzen, die älter als 2 Stunden sind, werden gelöscht. Sie können den Zeitplan und die Aktion an Ihre Anforderungen anpassen.
Fazit
Das Dienstprogramm gcp-hashicorp-packer-reaper stoppt oder löscht alle von Packer gestarteten virtuellen Maschinen. Ich empfehle Ihnen, den Dienst Cloud Run in Ihrem GCP-Konto einzurichten, so dass Sie nie für verweilende Packer-Instanzen bezahlen müssen.
Haben Sie dieses Problem bei AWS? Lesen Sie meinen Blog zum Thema Wie man verweilende Packer-Instanzen auf AWS beendet
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



