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

Einbindung in Jenkins

Auf dieser Seite werden Sie Schritt für Schritt durch die Konfiguration von Jenkins geführt, um erstellte Maven-Pakete in einem Artifact Registry-Repository zu speichern.

Die Paketverwaltung befindet sich in der Alphaphase. Sie ist nur für Alphanutzer verfügbar und umfasst möglicherweise nicht alle Features der Containerverwaltung. Wenn Sie sich für die Alphaversion anmelden möchten, füllen Sie das Anmeldeformular aus.

Hinweis

  1. Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository.

Zugriff auf Ihr Repository konfigurieren

  1. Erstellen Sie ein dediziertes Dienstkonto für Jenkins zur Verwendung mit Artifact Registry.

    Führen Sie den folgenden Befehl aus, um ein Dienstkonto mit dem Namen jenkins-sa zu erstellen:

    gcloud iam service-accounts create jenkins-sa
    

    Damit wird ein Dienstkonto mit dem Namen jenkins-sa@PROJECT.iam.gserviceaccount.com angelegt, wobei PROJECT Ihre Projekt-ID ist.

  2. Weisen Sie in dem Projekt, das das Repository enthält, dem von Ihnen erstellten Jenkins-Dienstkonto die Rolle Cloud Build Artifacts-Autor zu. Sie können entweder die Rolle für alle Repositories im Projekt zuweisen oder nur für die Repositories, auf die das Dienstkonto zugreifen muss.

    Ausführliche Informationen zu Berechtigungen und zum Gewähren des Zugriffs nach Rollen finden Sie unter Zugriffssteuerung konfigurieren.

Einen GKE-Cluster einrichten

Verwenden Sie beim Einrichten eines neuen Google Kubernetes Engine-Clusters oder -Knotenpools das Dienstkonto, das Sie für Jenkins erstellt haben.

Console

Zum Erstellen eines Clusters mit der Cloud Console führen Sie die folgenden Schritte aus:

  1. Rufen Sie in der Cloud Console das Menü von Artifact Registry auf.

    Menü von Artifact Registry aufrufen

  2. Klicken Sie auf Cluster erstellen.

  3. Konfigurieren Sie den Cluster wie gewünscht. Klicken Sie noch nicht auf Erstellen.

  4. Klicken Sie im Standardknotenpool auf Weitere Optionen.

  5. Wählen Sie im Abschnitt Sicherheit das von Ihnen erstellte Jenkins-Dienstkonto aus.

  6. Klicken Sie auf Speichern, um das Overlay zu schließen.

  7. Klicken Sie auf Erstellen.

gcloud

Verwenden Sie einen der folgenden Befehle, um den Cluster mit dem Jenkins-Dienstkonto zu erstellen. In den Befehlen ist PROJECT Ihre Projekt-ID.

Um einen Cluster mit dem Dienstkonto zu erstellen, führen Sie folgenden Befehl aus:

gcloud container clusters create example-cluster --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com

So erstellen Sie einen Knotenpool in einem vorhandenen Cluster:

gcloud container node-pools create example-pool --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com

Ausführliche Informationen zum Befehl finden Sie in der Dokumentation zu gcloud container clusters create.

Jenkins in GKE einrichten

  1. Folgen Sie der Anleitung zum Einrichten von Jenkins in GKE. Verwenden Sie den Cluster, den Sie im vorherigen Abschnitt erstellt haben.

  2. Aktualisieren Sie in Jenkins das GKE-Plug-in auf die neueste Version. Klicken Sie auf Jenkins verwalten > Plug-Ins verwalten > Updates.

Maven-Projekt einrichten

  1. Erstellen Sie im GitHub-Repository der Jenkins-Dokumentation eine Verzweigung für das Maven-Beispielprojekt.

  2. Klonen Sie das verzweigte Repository.

    git clone git@github.com:USER_NAME/simple-java-maven-app.git
    
  3. Richten Sie eine neue Pipeline in der Jenkins-Benutzeroberfläche ein.

    1. Klicken Sie auf Neues Element.
    2. Wählen Sie Pipeline aus.
    3. Legen Sie einen Namen für die Pipeline fest und klicken Sie auf OK.
  4. Konfigurieren Sie auf dem Tab Allgemein die folgenden Optionen im Abschnitt "Pipeline":

    • Wählen Sie Pipelineskript aus SCM aus.
    • Wählen Sie in der SCM-Drop-down-Liste Git aus und geben Sie dann die URL und die Anmeldedaten für das Herstellen einer Verbindung zum GitHub-Repository an.

    Pipeline-Einstellungen

  5. Klicken Sie auf Speichern.

Verbindung zum Repository konfigurieren

Konfigurieren Sie Jenkins mit dem Repository und den Anmeldedaten zum Herstellen einer Verbindung zum Repository.

  1. Fügen Sie das Repository zum Maven-Datei pom.xml hinzu. Verwenden Sie den folgenden Befehl, um ein Snippet zum Hinzufügen auszugeben:

    gcloud artifacts print-settings mvn [--project=PROJECT] \
    [--repository=REPOSITORY] [--location=LOCATION]
    

    Dabei gilt:

    • PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
    • REPOSITORY ist die ID des Repositorys. Wenn Sie ein Standard-Artifact Registry-Repository konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl ausgelassen wird.
    • LOCATION ist der regionale oder multiregionale Standort für das Repository.
  2. Erstellen Sie eine YAML-Datei als Pod-Vorlage für Jenkins-Agents.

    mkdir jenkins
    cat > jenkins/maven-pod.yaml << EOF
    apiVersion: v1
    kind: Pod
    spec:
      containers:
      - name: maven
        image: maven:3.3.9-jdk-8-alpine
        command: ['cat']
        tty: true
    EOF
    
  3. Ändern Sie die Datei Jenkinsfile.

    pipeline {
        agent none
        stages {
            stage('Deploy') {
                steps {
                     agent {
                         kubernetes {
                             label 'mavenpod'
                             yamlFile 'jenkins/maven-pod.yaml'
                           }
                       }
                       container('maven') {
                       sh "mvn -B clean deploy"
                     }
                }
            }
        }
    }
    

Build starten

  1. Übertragen Sie die vorgenommenen Änderungen per Push in der GitHub-Projekt.

    git add . && git commit -m "Configure my Jenkins pipeline" && git push
    
  2. Starten Sie in der Jenkins-Benutzeroberfläche einen neuen Build für die Anwendung in Ihrem Maven-Beispielprojekt.

Wenn der Build erfolgreich abgeschlossen ist, werden die Artefakte dem von Ihnen erstellten Maven-Repository von Artifact Registry hinzugefügt.

Führen Sie den folgenden Befehl aus, um die Pakete im Repository aufzulisten:

gcloud artifacts packages list --repository=mvn-jenkins --location=LOCATION

Die Ausgabe sieht dann in etwa so aus:

Listing items under project {YOUR_PROJECT}, repository mvn-jenkins.

PACKAGE                   CREATE_TIME          UPDATE_TIME
com.mycompany.app:my-app  2019-06-25T17:09:44  2019-06-25T17:09:44