Promptcloud esplora la configurazione dell'integrazione di Gerrit e Jenkins

Pubblicato: 2017-01-20
Mostra il sommario
Configurazione dell'integrazione utilizzando Gerrit e Jenkins
Cos'è Gerrit?
Cos'è Jenkins e i suoi usi?
Flusso di lavoro per l'integrazione continua
1. Installazione di Gerrit
2. Accesso iniziale
3. Generazione di chiavi SSH
4. Installazione di Jenkins
5. Avviare il processo Jenkins

Configurazione dell'integrazione utilizzando Gerrit e Jenkins

La vita di uno sviluppatore può diventare un po' monotona con le attività ripetitive e complicate. Per fortuna, disponiamo di strumenti in grado di gestire regolarmente le attività banali senza mai lamentarsi una volta impostati. Quando si aggiunge l'automazione al test e all'implementazione, la soluzione può essere definita "integrazione continua". Tale configurazione può testare e distribuire automaticamente i progetti, dandoti più tempo per concentrarti sulla scrittura del codice piuttosto che inviarlo ai server. Ecco come procedere con una configurazione di integrazione continua utilizzando Gerrit e Jenkins . Configurazione CI utilizzando Gerrit e Jenkins

Cos'è Gerrit?

Gerrit è un sistema di revisione del codice open source basato su git che ha un'interfaccia basata sul Web che ti consente di inviare le modifiche da un client git, rivedere le modifiche e unirti automaticamente con il codice master. Ogni volta che viene apportata una modifica, vengono creati set di patch per la stessa. Gerrit consente diversi confronti tra set di patch. Ha anche la possibilità di aggiungere feedback o recensioni su righe specifiche o sull'intera patch. I revisori possono valutare le modifiche con una dal basso: +2 – Mi sembra buono, approvato. +1 – Mi sembra buono, ma qualcun altro deve approvare. 0 – Nessun punteggio. -1 – Preferirei che non lo inviassi. -2 – Blocca l'invio. Una revisione +2 implica che il codice può essere inviato al master per impostazione predefinita. Questo può essere configurato come richiesto.

Cos'è Jenkins e i suoi usi?

Jenkins è un popolare server di compilazione utilizzato per l'integrazione continua. È basato sul Web e consente l'automazione del processo di compilazione man mano che si verificano modifiche. Jenkins può lavorare in modo indipendente, anche senza Git o Gerrit. Ha hook che consentono trigger di eventi, quindi quando si verifica una modifica, viene creata automaticamente una build. Quando Jenkins e Gerrit vengono utilizzati insieme, le build avranno un segno di successo/fallimento per indicare se hanno superato i test. Jenkins eseguirà la regressione del test dopo aver eseguito una build. Una volta completato, pubblicherà i risultati del test proprio come uno dei revisori. Nel caso in cui la build fallisca, rifiuterà la patch. È possibile impostare un -1 o un -2 a seconda della qualità dell'elemento della configurazione in caso di fallimento del test. Insieme a questo, anche altri revisori del codice possono rivedere il codice a questo punto. Se tutte le revisioni sono state superate, il codice può essere inviato a un repository pubblico .

Flusso di lavoro per l'integrazione continua

  1. Lo sviluppatore controlla la fonte da Git
  2. Lo sviluppatore apporta le modifiche richieste
  3. Lo sviluppatore invia le modifiche a Gerrit
  4. Gerrit invia un avviso di modifica a Jenkins per il test di integrazione
  5. Jenkins estrae le modifiche direttamente dal server Gerrit git ed esegue tutti i casi di test secondo la configurazione del nostro progetto
  6. Altri sviluppatori esaminano le modifiche e approvano (+2)
  7. Gerrit unisce le modifiche al repository git del progetto master quando Jenkins ha superato la build e le modifiche sono state approvate da altri sviluppatori

Configurazione dell'integrazione utilizzando il flusso di lavoro Gerrit e Jenkins 1. Installazione di Gerrit

  • Requisito: JRE, versione minima 1.8.
  • Link per scaricare il pacchetto di guerra tGerrit

Se hai MySQL, puoi usarlo per il database Gerrit. Crea utenti e database in MySQL per Gerrit.

mysql> CREATE USER 'gerrit2'@'localhost' IDENTIFICATO DA 'secret';

mysql> CREATE DATABASE reviewdb;

mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';

mysql> PRIVILEGI FLUSH;

Ora esegui il comando seguente per inizializzare il sito.

 # java -jar gerrit.war init –batch -d ~/

Durante questa inizializzazione, il servizio gerrit viene avviato per impostazione predefinita. Se desideri apportare modifiche, ad esempio database mysql, autenticazione di accesso, invio server di posta elettronica e URL httpd, puoi modificare il file ~//etc/gerrit.config e aggiungere i dettagli ldap e password del database in ~//etc/secure file .config . Se vengono apportate modifiche alle impostazioni, è necessario riavviare il servizio gerrit prima che abbiano effetto.

 # ~//bin/gerrit.sh riavvia

Copia lo script ~//bin/gerrit.sh nella directory init.d come gerrit e aggiungilo per avviarlo durante l'avvio della macchina.

2. Accesso iniziale

Ora carica il tuo URL Gerrit nel browser. Puoi trovare l'URL web di Gerrit anche usando questo comando.

# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl

Ora usa l'autenticazione di accesso usando il metodo che hai configurato nel file di configurazione di Gerrit per accedere all'interfaccia web di Gerrit. Per impostazione predefinita, è OpenID. LDAP è uno dei metodi di autenticazione più utilizzati.

Dopo aver effettuato correttamente l'accesso alla pagina Web Gerrit, è necessario accedere alla macchina client dove si farà lo sviluppo. È necessario generare chiavi RSA per le sessioni ssh. Puoi saltare il passaggio di generazione della chiave se hai già i file.

# ls -l ~/.ssh

chiavi_autorizzate config_id_rsa id_rsa.pub host_noti

3. Generazione di chiavi SSH

# ssh-keygen -t rsa

Generazione di una coppia di chiavi RSA pubblica/privata.

Inserisci il file in cui salvare la chiave (/home/user/.ssh/id_rsa):

Inserisci passphrase (vuoto per nessuna passphrase):

Inserisci di nuovo la stessa passphrase:

La tua identificazione è stata salvata in /home/user/.ssh/id_rsa.

La tua chiave pubblica è stata salvata in /home/user/.ssh/id_rsa.pub.

L'impronta digitale chiave è:

SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA utente@localhost

L'immagine randomart della chiave è:

+—[RSA 2048]—-+

| o… |

| .+o . o|

| ..+=. E..|

| .=o=.. . |

| . SB * o |

| = .. * o |

| . = . = . .|

| . o. +o++.+ |

| . o*=*Boo .|

+—-[SHA256]—–+

# gatto ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp utente@localhost

  • Copia la chiave pubblica sopra e vai al tuo URL web gerrit
  • Controlla il nome utente nell'angolo destro della pagina Web e fai clic sul tuo utente per trovare il collegamento alle impostazioni
  • Nella parte sinistra, puoi trovare le "Chiavi pubbliche SSH", fai clic su di essa
  • Ora fai clic sul pulsante "Aggiungi chiave", incolla la tua chiave pubblica ssh e aggiungila

Configurazione dell'integrazione utilizzando Gerrit e Jenkins Key Generator SSH Il primo utente che accede e registra un account verrà automaticamente inserito negli amministratori con privilegi completi. Ora hai i privilegi per creare progetti. Fare clic sulla scheda "Progetti" e fare clic su "Crea nuovi progetti". Ora inserisci il nome del progetto per iniziare. Configurazione CI Ecco fatto, clona il progetto nel tuo sistema e inizia ad aggiungere i tuoi codici di sviluppo. # ssh [email protected] -p 29418

**** Benvenuto in Gerrit Code Review **** Ciao Selvam, ti sei connesso con successo tramite SSH. Sfortunatamente, le shell interattive sono disabilitate. Per clonare un repository Git ospitato, utilizzare: git clone ssh://[email protected]:29418/REPOSITORY_NAME.git Connessione a 192.168.56.137 chiusa.

# git clone ssh: //[email protected] :29418/Gerrit_Test

4. Installazione di Jenkins

Puoi installare jenkins usando il pacchetto apt-get o deb.

  • sudo apt-get update
  • sudo apt-get install jenkins

La configurazione di Jenkins esiste in /etc/default/jenkins, dove puoi cambiare la posizione di java e JAVA_ARGS. Per impostazione predefinita, jenkins viene eseguito su 8080. Se stai eseguendo gerrit e jenkins sulla stessa macchina, la porta predefinita 8080 è già occupata da gerrit. Qui è necessario modificare la porta di jenkins. Per cambiarlo, modifica il valore HTTP_PORT in modo che venga eseguito su una porta diversa.

5. Avviare il processo Jenkins

# /etc/init.d/jenkins start Vai al tuo browser e carica la pagina jenkins con il tuo nome host e numero di porta jenkins.

 https://:/

Se hai installato Jenkins 2.*, la pagina web di jenkins chiederà la initialAdminPassword. Puoi trovare la password nel file /var/log/jenkins/jenkins.log. Il registro è simile al seguente:

È richiesta la configurazione iniziale di Jenkins. È stato creato un utente amministratore e generata una password. Utilizzare la seguente password per procedere all'installazione: f16b093akcnml397jcdoa239d6bafb9 Questa può essere trovata anche in: /var/lib/jenkins/secrets/initialAdminPassword
  • Ora vai su Jenkins -> Gestisci Jenkins -> Plugin Manager per installare il plugin git e gerrit in jenkins
  • Fai clic sulla scheda "Disponibile" e cerca " Git Plugin " e fai clic su "Installa senza riavviare". Cerca di nuovo " Gerrit Trigger" e fai clic su "Installa senza riavviare". Infine, controlla se è nell'elenco delle installazioni.

Configurazione dell'integrazione utilizzando Gerrit e Jenkins Plugin Il processo Jenkins è eseguito dall'utente jenkins. Quindi, dobbiamo abilitare l'accesso per l'utente jenkins in gerrit.

  • Usando il tuo metodo di autenticazione, crea l'utente jenkins in gerrit
  • Ora crea ssh-keygen per l'utente jenkins come abbiamo fatto in precedenza. Ma questa volta, crea la chiave con una passpharse vuota e copia la chiave pubblica per l'utente jenkins nel gerrit
  • Ora fai clic su "Nuovo elemento" per creare un nuovo lavoro e aggiungi il tuo URL git nella sezione Gestione codice sorgente/Git. Inoltre, scegli "Evento Gerrit" in Build Triggers e inserisci il modello del progetto Gerrit.

Configurazione dell'integrazione utilizzando l'evento Gerrit e JenkinsEvento di integrazione CI Infine, salva la configurazione. Perfetto, la configurazione di Gerrit e Jenkins è ora completa.