Server

Konfigurieren von GitLab Container Registry, CI-Pipeline mit SonarQube

Konfigurieren von GitLab Container Registry, CI-Pipeline mit SonarQube

Im heutigen Tutorial verwenden wir die GitLab-Container-Registry zum Speichern von Bildern. Informationen zur Installation und Konfiguration von GitLab finden Sie in unserem GitLab-Leitfaden.

Beginnen wir zuerst mit der Installation des Containers.

1. Container Registry konfigurieren

Navigieren Sie zum Admin-Bereich, und das erste, was Sie bemerken, ist, dass die Container-Registry standardmäßig deaktiviert ist.

Container Registry deaktiviert

Container-Registry installieren

Wir sollten die GitLab-Konfigurationsdatei ändern. Geben Sie den folgenden Befehl ein:

a) Ändern Sie gitlab.rb

vim /etc/gitlab/gitlab.rb

Ändern Sie die folgende Zeile:

Registry_external_url 'https://gitlab.fosslinux.com:5050'

Registrierungs-URL

Jetzt lauscht die Registrierungs-URL auf HTTPS unter der bestehenden GitLab-URL mit einem anderen Port.

b) Nach der Änderung müssen Sie Gitlab neu konfigurieren.

gitlab-ctl rekonfigurieren

Neu konfigurieren

Wenn Sie fertig sind, gehen Sie zum Admin-Bereich, und dieses Mal sollten Sie ihn aktiviert sehen see.

Containerregistrierung

c) Testen Sie das Container-Login von einem anderen Computer aus. Beachten Sie jedoch, dass Docker auf diesem System installiert werden sollte.

Docker-Login gitlab.fosslinux.com:5050

Der Standardspeicherort für Bilder lautet wie folgt:

/var/opt/gitlab/gitlab-rails/shared/registry

Wenn Sie den Pfad ändern möchten, verwenden Sie VIM, um ihn zu bearbeiten.

vim /etc/gitlab/gitlab.rb

Ändern Sie die folgende Zeile:

gitlab_rails['registry_path'] = "/path/to/registry/storage"

Dann neu konfigurieren.

gitlab-ctl rekonfigurieren

2. Erstellen eines Projekts

Wir werden ein neues Projekt für eine Pipeline erstellen. Gehen Sie dazu in den Admin-Bereich.

Klicken Sie auf Admin

Sie sollten den Admin-Bereich ähnlich sehen:

Klicken Sie dann auf die Neue Gruppe.

Erstellen Sie eine Gruppe

Sie können Ihrer Gruppe einen beliebigen Namen geben. Geben Sie dann einen Namen für die Projekt-URL ein. Die Sichtbarkeitsstufe ist hier „Privat“; Wir haben eine Gruppe namens „gitdemo . erstellt.”

Gehen Sie dann wieder zum Admin-Bereich -> Neues Projekt

Neues Projekt

Geben Sie dem Projekt einen Namen. Wählen Sie die zuvor erstellte Gruppe für das Projekt aus.

Nachdem Sie ein Projekt erstellt haben, können Sie dem Repository eine Beispieldatei hinzufügen.

3. Containerregistrierung für Projekt aktivieren

Gehe zu Projekt Einstellungen -> Allgemeines und dann erweitern Sichtbarkeit, Projektfunktionen, Berechtigungen.

Aktivieren Sie dann die Containerregistrierung.

Registrierung für Projekt aktivieren

Gehen Sie nun zu Ihrem Projekt und Sie können die Containerregistrierung im Abschnitt "Pakete" sehen.

Zur Seitenleiste hinzugefügt

4. AutoDevops deaktivieren

Gehen Sie zu Ihrem Projekt -> die Einstellungen -> CICD

Deaktivieren Sie Auto DevOps

Dann erweitern Auto DevOps und deaktivieren Sie „Standardmäßig auf Auto DevOps-Pipeline.”

Funktion deaktivieren

5. Erstellen Sie einen SSH-Schlüssel vom Client-/Entwicklercomputer

Hier werden wir einen ssh-Schlüssel erstellen und uns mit unserem GitLab authentifizieren. Danach können wir Git-Repositorys von unserem Client-Rechner pushen, ziehen und klonen.

a) Führen Sie den folgenden Befehl aus, um einen Schlüssel zu generieren:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Schlüssel erstellen

b) Öffentlichen Schlüssel kopieren:

Katze ~/.ssh/is_rsa_pub

Schlüssel holen

Melden Sie sich nun beim GitLab-Server an. Gehen Sie zu Profil -> SSH-Schlüssel

c) Kopierten Schlüssel zum Schlüsselabschnitt hinzufügen und speichern.

Schlüssel hinzufügen GitLab

d) Jetzt müssen wir die URL für das Clone-Repository mit SSH abrufen.

Gehe zu deinem Projekt -> Klon.

Klon mit ssh-URL kopieren.

Repository klonen

Bevor wir das Repository auf unseren Computer klonen, müssen wir „git“ installieren

Git auf Client-Server installieren:

yum installiere git -y

Jetzt werden wir das Repository klonen und unseren Code in das Gitlab-Repository übertragen.

Globales Git-Setup

git config --global user.Name "Darshana"
git config --global user.E-Mail "[email protected]"

Führen Sie den folgenden Befehl aus, um das Repository zu klonen:

git clone [email protected]:gitdemo/fosslinux.git

Repository klonen

Kopiere deinen Quellcode in den geklonten Ordner.

Gehen Sie zum geklonten Ordner:

cd fosslinux

Pushen Sie nun Code in das Repository:

git hinzufügen .
Git-Status
git commit -m "Demo-Projektdateien"
git push

6. GitLab Runner installieren

Es wird empfohlen, GitLab Runner auf einem anderen Server als GitLab zu installierenLab. Sie können es auch auf demselben Server installieren, wenn Sie es immer noch so wollen.

Hier verwenden wir den Docker-Executor; Daher sollten wir Docker installieren, bevor wir den Runner verwenden.

a) Der Docker-Executor

GitLab Runner kann Docker verwenden, um Jobs auf vom Benutzer bereitgestellten Images auszuführen, da der Docker-Executor verwendet wird.

Der Docker-Executor stellt bei Verwendung mit GitLab CI eine Verbindung zur Docker Engine her und führt jeden Build in einem isolierten Container mit dem vordefinierten Image aus, das in der Gitlab CI-Datei konfiguriert ist. Wir werden die Gitlab CI-Datei sehen, wenn wir die Pipeline besprechen.

Repository installieren:
curl -L https://Pakete.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sch | bash

Läufer-Repo

Runner installieren:
apt-get install gitlab-runner

Runner installieren

Überprüfen Sie den Runner-Status:

gitlab-Runner-Status

Läuferstatus

Läufer registrieren

Hier werden wir einen gemeinsamen Runner hinzufügen. Gehe zum Admin-Bereich -> Läufer.

Geteilter Läufer

Dann kannst du sehen Richten Sie einen geteilten Runner manuell ein Sektion. Wir benötigen unsere Gitlab-URL und den Token für den registrierten Runner.

Läufer-Token

Run Register Runner

Führen Sie den folgenden Befehl aus, um den Runner zu registrieren.

gitlab-runner registrieren

Läufer registrieren

Es sollte ein paar Fragen stellen. Beantworten Sie folgende Fragen.

a) Geben Sie Ihre GitLab-Instanz-URL ein:

Bitte geben Sie die gitlab-ci-Koordinator-URL ein (e.G. https://gitlab.com) https://gitlab.fosslinux.com

b) Geben Sie den Token ein, den Sie erhalten haben, um den Runner zu registrieren:

Bitte geben Sie das gitlab-ci-Token für diesen Läufer xxxxxxxxxxxxxxxxxxxxxxx ein

c) Geben Sie eine Beschreibung für den Läufer ein; Sie können dies später in der Benutzeroberfläche von GitLab ändern:

Bitte geben Sie die gitlab-ci-Beschreibung für diesen Runner ein [hostname] Docker-runner

d) Geben Sie die mit dem Läufer verknüpften Tags ein; Sie können dies später in der Benutzeroberfläche von GitLab ändern:

Bitte geben Sie die gitlab-ci-Tags für diesen Läufer ein (durch Kommas getrennt): master,dev,qa

e) Geben Sie den Runner-Executor ein:

Bitte geben Sie den Executor ein: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell: docker

f) Wenn Sie Docker als Executor auswählen, werden Sie nach dem Standardimage gefragt, das für Projekte verwendet werden soll, die kein in . definieren .gitlab-ci.yml:

Bitte geben Sie das Docker-Image ein (zB. Rubin: 2.6): alpin:neueste

Jetzt Läufer erfolgreich registriert.

Läufer neu starten
gitlab-runner Neustart

Aktualisieren Sie nun die Seite Läufer (Admin-Bereich -> Läufer). Sie können den neu hinzugefügten Runner sehen.

Neu hinzugefügter Läufer

Wir müssen einige Einstellungen für den Runner ändern. Also klick auf den Token.

Gemeinsame Läufereinstellung

Wählen Sie dann „Jobs ohne Tags ausführen“ und speichern Sie die Änderungen.

Projekte ohne Tags

Gitlab-Runner-Konfigurationen ändern

Wir werden verwenden docker-in-docker (dind) Modus in der GitLab-Pipeline, also müssen wir verwenden privilegiert = wahr in unseren Docker-Containern. Daher werden wir den privilegierten Modus aktivieren.

Konfigurationsdatei bearbeiten:

vim /etc/gitlab-runner/config.toml

Läufermodus

Ändern Sie den Abschnitt "privilegiert".

privilegiert = wahr

Nach der Änderung können Sie eine ähnliche Datei wie diese sehen.

Modifizierter Läufer

Starten Sie dann Runner neu.

gitlab-runner Neustart

7. Variablen für GitLab PipeLine konfigurieren

Container-Registry-Variablen hinzufügen

Klicken Sie auf Projekt -> Einstellungen -> CICD -> Variablen (klicken Sie auf Erweitern).

Variablen

Fügen Sie dem Schlüssel Folgendes hinzu und fügen Sie einen Wert hinzu.

CI_REGISTRY_USER CI_REGISTRY_PASSWORD

Variablenwerte hinzufügen

Hier müssen Sie GitLab-Login und Passwort hinzufügen.

Integration mit SonarQube-Server

Holen Sie sich den SonarQube-Token und fügen Sie ihn zu GitLab hinzu. Melden Sie sich beim SonarQube-Server an.

Gehen Sie zu Administration > klicken Sie auf Sicherheit > Benutzer > Klicken Sie auf Tokens

Sonar-Token

Es sollte ein Token-Fenster öffnen.

Token generieren

Token mit beliebigem Namen generieren -> Token kopieren.

Neues Token

Token kopieren und erneut zu GitLab gehen. Klicken Sie auf Projekt -> Einstellungen -> CICD -> Variablen

Fügen Sie eine neue Variable hinzu.

SONARQUBE_TOKEN

Sonar-Token in den Wert „SONARQUBE_TOKEN“ einfügen.

8. Erstellen Sie eine Pipeline

Folgende Dateien sollten sich im Repository-Ordner befinden

a) Dockerfile

Wir brauchen eine Docker-Datei, um unser Image zu erstellen. Folgen Sie unserem Docker-Dateileitfaden.

Hier ist unsere Docker-Datei:

FROM ddarshana/alpinenode10 ENV NODE_ENV=production RUN apk add --update curl && rm -rf /var/cache/apk/* RUN mkdir /app WORKDIR /app COPY package.json . RUN npm install COPY… CMD ["npm", "start"]

Gehen Sie zu Ihrem Projekt und erstellen Sie eine neue Datei namens "Docker File".”

Docker-Datei hinzufügen

b) Hinzufügen Sonar-Projekt.Eigenschaften

Die Sonar-Eigenschaftsdatei sollte sich in unserem Quellcode-Stammverzeichnis befinden, um Scandaten an den SonarQube-Server zu senden.

Hier ist unsere Datei:

# Erforderliches Metadaten-Sonar.projectKey=fosslinux-Sonar.projectName=fosslinux # Durch Kommas getrennte Pfade zu Verzeichnissen mit Quellen (erforderlich) Sonar.Quellen=./ # Sprachsonar.language=js Sonar.profile=node # Kodierung von Quelldateien Sonar.sourceEncoding=UTF-8

Gehen Sie zu Ihrem Projekt und erstellen Sie „sonar-project.Eigenschaften.”

Sonar-Eigenschaftsdatei hinzufügen

ich. Erstellen Sie eine GitLab-CI-Datei

Gehen Sie zu Ihrem Projekt und erstellen Sie eine Datei mit dem Namen „.gitlab-ci.yml.”

Pipeline-Datei

Das ist unsere Datei.

Stufen: - Lint-Bilder - Codequalität - Bildvariablen erstellen und veröffentlichen: DOCKER_REGISTRY: gitlab.fosslinux.com:5050 APP_NAME: fosslinux linting: stage: Lint images image: node:4-alpine only: - master script: - npm install -g dockerlint && npm cache clean - find ./ -name Dockerfile -exec dockerlint  \; Codequalität: Bühne: Codequalität Bild: ddarshana/alpine-sonarscanner Skript: - Sonar-Scanner -Dsonar.Gastgeber.url=https://sonar.fosslinux.com -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.projectVersion=$CI_PIPELINE_ID -Dsonar.Nur projectName=$CI_PROJECT_NAME+$CI_BUILD_REF_NAME: - Master-Publishing: Stage: Images erstellen und veröffentlichen Image: docker:18.09.7 Dienste: - Docker: 18.09.Nur 7-dind: - Master-Skript: - Docker-Login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $DOCKER_REGISTRY - Docker-Build . -t $DOCKER_REGISTRY/gitdemo/$APP_NAME:$CI_PIPELINE_ID - docker push $DOCKER_REGISTRY/gitdemo/$APP_NAME:$CI_PIPELINE_ID - echo "Bild gepusht $APP_NAME:$CI_PIPELINE_ID" - docker logout $DOCKER_REGISTRY

Hier haben wir drei Stufen für unsere Pipeline definiert:

Stufen: - Lint-Bilder - Codequalität - Bilder erstellen und veröffentlichen

Variablen werden für die Docker-Registrierung und den Anwendungsnamen festgelegt.

Variablen: DOCKER_REGISTRY: gitlab.fosslinux.com:5050 APP_NAME: fosslinux

Sobald Sie Änderungen an den Master-Branch übertragen, sollte die Pipeline starten.

Pipeline gestartet

Wie Sie sehen, läuft die Pipeline. Sie können die Phasen der Pipeline sehen.

Pipeline

Wenn alle Phasen erfolgreich waren, können Sie die Ausgabe wie folgt sehen.

Abgeschlossene Pipeline

Sie können auf jede Stufe klicken und ihre Protokolle anzeigen.

Ausgang der Stufe

a) Überprüfen Sie die Container-Registry.

Projekt -> Pakete -> Containerregistrierung

Gepushtes Bild

Dann kannst du unser Bild sehen.

b) Sonarbericht prüfen

Melden Sie sich bei SonarQube an und Sie können den Bericht für unser Projekt sehen see.

Sonarbericht

Das ist alles über die Erstellung einer GitLab-Pipeline mit dem GitLab-Container-Service und der Sonarqube-Integration.

Die 5 besten Arcade-Spiele für Linux
Heutzutage sind Computer ernsthafte Maschinen, die zum Spielen verwendet werden. Wenn du den neuen Highscore nicht bekommst, weißt du was ich meine. I...
Schlacht um Wesnoth 1.13.6 Entwicklung veröffentlicht
Schlacht um Wesnoth 1.13.6, das letzten Monat veröffentlicht wurde, ist die sechste Entwicklungsversion im 1.13.x-Serie und bietet eine Reihe von Verb...
So installieren Sie League of Legends auf Ubuntu 14.04
Wenn Sie ein Fan von League of Legends sind, dann ist dies eine Gelegenheit für Sie, League of Legends zu testen. Beachten Sie, dass LOL von PlayOnLin...