Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

VM-Images mit Packer erstellen

Packer ist ein Open-Source-Tool zum Erstellen identischer VM-Images (virtuelle Maschine) für mehrere Plattformen aus einer einzelnen Quellkonfiguration. Auf dieser Seite wird erläutert, wie Sie mithilfe von Packer und Cloud Build ein VM-Image zur Verwendung in Compute Engine erstellen. Wenn Sie Cloud Build noch nicht kennen, lesen Sie zuerst die Kurzanleitungen sowie die Übersicht über die Build-Konfiguration.

Hinweis

Die Anleitung auf dieser Seite setzt voraus, dass Sie mit Packer vertraut sind. Außerdem gilt:

  • Halten Sie Ihren Quellcode bereit, einschließlich der Packer-Vorlage.
  • Wenn Sie die auf dieser Seite angegebenen gcloud-Befehle verwenden möchten, müssen Sie das gcloud-Befehlszeilentool installieren.
  • Aktivieren Sie folgende APIs:

    gcloud services enable sourcerepo.googleapis.com
    gcloud services enable compute.googleapis.com
    gcloud services enable servicemanagement.googleapis.com
    gcloud services enable storage-api.googleapis.com
    

Erforderliche IAM-Berechtigungen

Damit Sie Packer zusammen mit Cloud Build verwenden können, muss das Cloud Build-Dienstkonto die Rolle Bearbeiter haben. So weisen Sie die Rolle "Bearbeiter" zu:

  1. Suchen Sie das Cloud Build-Dienstkonto:

    CLOUD_BUILD_ACCOUNT=$(gcloud projects get-iam-policy $PROJECT --filter="(bindings.role:roles/cloudbuild.builds.builder)"  --flatten="bindings[].members" --format="value(bindings.members[])")
    
  2. Fügen Sie dem Konto die Bearbeiterrolle hinzu:

    gcloud projects add-iam-policy-binding $PROJECT \
      --member $CLOUD_BUILD_ACCOUNT \
      --role roles/editor
    

Packer-Builder-Image erstellen

Cloud Build bietet ein Builder-Image der Packer-Community, mit dem Sie in Cloud Build packer-Befehle aufrufen können. Bevor Sie diesen Builder in einer Cloud Build-Konfigurationsdatei verwenden können, müssen Sie erst das Image erstellen und an die Container Registry in Ihrem Projekt übertragen:

  1. Klonen Sie das Repository cloud-builders-community:

    git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
    
  2. Wechseln Sie zum Packer-Builder-Image:

    cd cloud-builders-community/packer
    
  3. Übertragen Sie den Builder in Ihr Projekt:

    gcloud builds submit .
    

Packer-Builder verwenden

  1. Erstellen Sie im Stammverzeichnis des Projekts eine Build-Konfigurationsdatei mit dem Namen cloudbuild.yaml oder cloudbuild.json.

  2. Fügen Sie der Build-Konfigurationsdatei einen Build-Schritt hinzu, um den Befehl packer build aufzurufen:

    YAML

    steps:
    - name: 'gcr.io/[PROJECT_ID]/packer'
      args:
      - build
      - -var
      - image_name=[IMAGE_NAME]
      - -var
      - project_id=[PROJECT_ID]
      - -var
      - image_family=[IMAGE_FAMILY]
      - -var
      - image_zone=[IMAGE_ZONE]
      - packer.json
    

    JSON

    {
      "steps": [
       {
          "name": "gcr.io/[PROJECT_ID]/packer",
          "args": [
            "build",
            "-var",
            "image_name=[IMAGE_NAME]",
            "-var",
            "project_id=[PROJECT_ID]",
            "-var",
            "image_family=[IMAGE_FAMILY]",
            "-var",
            "image_zone=[IMAGE_ZONE]",
            "packer.json"
           ]
        }
       ]
    }
    

    Dabei gilt:

    • [PROJECT_ID] ist die ID Ihres Cloud-Projekts.
    • [IMAGE_NAME] ist der Name des VM-Images, das Sie erstellen.
    • [IMAGE_FAMILY] ist die Image-Familie des VM-Images.
    • [IMAGE_ZONE] ist die Zone des Images.
  3. Starten Sie den Build mithilfe der Build-Konfigurationsdatei:

    gcloud builds submit --config [CONFIG_FILE_PATH] [SOURCE_DIRECTORY]
    

    Dabei gilt:

    • [CONFIG_FILE_PATH] ist der Pfad zur Build-Konfigurationsdatei.
    • [SOURCE_DIRECTORY] ist der Pfad oder die URL zum Quellcode.

    Wenn Sie [CONFIG_FILE_PATH] und [SOURCE_DIRECTORY] im Befehl gcloud builds submit nicht angeben, geht Cloud Build davon aus, dass sich die Konfigurationsdatei und der Quellcode im aktuellen Arbeitsverzeichnis befinden.

Sobald die Images erstellt wurden, können Sie sich diese in der Cloud Console auf der Seite "Image" von Compute Engine anzeigen lassen.

Nächste Schritte