GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Jenkins su CentOS e collegarlo a GitHub

Jenkins fornisce strumenti CI/CD open source ampiamente utilizzati. In questo articolo impareremo come installare Jenkins e configurarlo con Github per l'invio di file al server tramite SSH.

Installazione di Jenkins:

Jenkins è un'applicazione basata su JAVA, quindi prima di tutto dobbiamo installare JAVA. Il comando seguente installerà JAVA su centos 7.

sudo yum install java-1.8.0-openjdk-devel

Verifica la versione Java

[[email protected] ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

Ora configura il repository Jenkins utilizzando i seguenti comandi.

curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo

Questo mostrerà i seguenti output.

[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1

Quindi esegui il comando seguente per aggiungere la chiave Jenkins.

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Ora abbiamo configurato Jenkins Repository e siamo pronti per installare Jenkins utilizzando i seguenti semplici comandi.

sudo yum install jenkins

Al termine dell'installazione, controlla il servizio Jenkins e abilitalo al riavvio del sistema.

sudo systemctl start Jenkins
sudo systemctl enable jenkins

Ora riavvia il sistema e assicurati che il servizio jenkins sia in esecuzione usando il seguente comando.

sudo systemctl enable jenkins

Ora consenti a Jenkins di entrare nel firewall.

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

Configura impostazioni:

Non possiamo utilizzare Jenkins direttamente, dobbiamo digitare il nome di dominio o l'indirizzo IP nel browser Web seguito dal numero di porta predefinito Jenkins 8080.

Nello screenshot sopra, dobbiamo digitare la password generata automaticamente da Jenkins per una volta. Esegui il comando seguente per ottenere una password.

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Questo darà un output come 2179c452db3b45f98cf9e4c4961ab635

Dopo la password, dobbiamo installare i plugin sul sistema Jenkins. Per questo, seleziona semplicemente il plug-in suggerito installato per installare tutti i plug-in predefiniti.

Compila tutti i dettagli e fai clic su salva e continua.

Ora richiederà la configurazione dell'istanza, dove possiamo anche cambiare il numero di porta predefinito.

Ora i nostri Jenkins sono salvati e pronti per l'uso.

Congratulazioni, la nuova configurazione Jenkins è stata completata con successo e pronta per l'uso.

Lo screenshot seguente mostra la dashboard predefinita per Jenkins.

Configurazione Jenkins:

Installa plugin:

Prima di procedere con i passaggi successivi, assicurati di installare i seguenti plugin.

Vai a Gestisci Jenkins -> Gestisci plug-in -> Disponibile -> filtro -> cerca il seguente plug-in necessario per l'integrazione con GitHub.

Pubblica su SSH
Git
Plugin GitHub
Plugin client Git

Qui, il plug-in Publish Over SSH necessario per inviare i nostri file al server tramite SSH.

Aggiungi credenziali:

Dobbiamo aggiungere le credenziali del server in Jenkins.

Vai a Jenkins Dashboard → credenziali → sistema → Credenziali globali (senza restrizioni) → Aggiungi credenziali

Possiamo selezionare il tipo di credenziali che desideriamo installare. Qui aggiungiamo nome utente e password delle credenziali GitHub per un uso successivo.

ssh su Jenkins Server.

Jenkins può connettersi a un server remoto utilizzando ssh ed è in grado di eseguire script, comandi o copiare file da un server a un altro server.

A tale scopo, dobbiamo creare una connessione ssh tra il server Jenkins e il server remoto.

Il passaggio successivo aggiunge le credenziali SSH su Jenkins che vogliamo connettere al server Jenkins.

Vogliamo connetterci a un server web di Jenkins con utente root, ad esempio, il nostro server web è 138.197.151.144 e utente root, quindi dobbiamo accedere a quel server usando ssh.

ssh [email protected]

Ora vai alla home directory e cd nella cartella .ssh.

cd ~/.ssh

Il prossimo passo sarà generare una chiave privata e una chiave pubblica per l'utente root sul nostro server web.

ssh-keygen -t rsa -f private_key_for_jenkins

Dopo aver eseguito il comando precedente, verrà chiesto "Inserisci passphrase", non è necessario inserire la passphrase. Quindi fai clic su Invio due volte e genererà due chiavi sul server web private_key_for_jenkins e private_key_for_jenkins.pub.

Qui private_key_for_jenkins è la chiave privata di 138.197.151.144 e dobbiamo usare il contenuto di questo file nel nostro server Jenkins.

Abbiamo il secondo file chiamato private_key_for_jenkins.pub che è la chiave pubblica del server web. Dobbiamo copiare i suoi dati in un altro file chiamato Authorised_keys che si trova nella stessa directory.

Nella maggior parte dei casi i file Authorised_keys sono presenti nella cartella ~/.ssh/ ma a volte mancano e dobbiamo generare nuovi file Authorised_keys. Esegui semplicemente il comando seguente per copiarlo in chiavi_autorizzate, questo comando genera anche nuove chiavi_autorizzate se è disponibile.

cat private_key_for_jenkins.pub > authorized_keys

Ora accedi al server Jenkins, quindi vai su Gestisci Jenkins -> Configura sistemi

Un'alternativa che possiamo scrivere direttamente http://ip_address:8080/configure nel browser web, questo aprirà Configura sistemi per le configurazioni ssh.

Ora, cerca la sezione Server dei server SSH in "Configura Jenkins". Tieni presente che questa sezione è disponibile solo se abbiamo 'SSH Credential Plugin' installato sul server Jenkins.

Vai alla sezione Pubblica su SSH vai alla chiave e incolla il contenuto di private_key_for_jenkins

Ora nell'opzione Server SSH, fai clic sul pulsante Aggiungi e inserisci i dettagli del server SSH. Possiamo modificare la porta ssh e altre impostazioni dall'opzione Avanzata.

Dopo aver apportato le modifiche, fai clic su "Test configurazione" e dovremmo ricevere un messaggio di successo come mostrato nello screenshot sopra se tutte le impostazioni sono corrette.

Tieni presente che possiamo aggiungere più server secondo il nostro requisito per la pubblicazione dello stesso codice su più server utilizzando ssh.

Per questo, dobbiamo generare la chiave privata per ogni server come accennato in precedenza e dobbiamo aggiungere la loro chiave privata al server Jenkins.

Infine, fai clic sul pulsante "Salva" e salva le nostre modifiche. Abbiamo creato con successo una connessione ssh a un server remoto. Ora possiamo inviare il file al server remoto e anche eseguire qualsiasi comando o script su quel server.

Configurazione di Jenkins con Github

Per l'automazione delle build attivate dalla richiesta PUSH e PULL, è necessario aggiungere un WebHook Jenkins a ciascun repository GitHub o webhook dell'organizzazione.

Passaggi per configurare il webhook dal repository Github.

1. Accedi ai tuoi account GitHub

2. Fare clic sul repository su cui dobbiamo impostare webhook

3. vai all'opzione delle impostazioni per quel repository

4. Fai clic su Webhook e aggiungi l'URL del payload. Sembra http://jenkins_ip:8080/github-webhook/

5. Seleziona "application/json" come tipo di codifica da Tipo di contenuto

6. Lascia vuoto "Segreto" (a meno che non sia stato creato e configurato un segreto nella sezione Jenkins "Configura sistema -> plug-in GitHub")

7. Seleziona "Fammi selezionare singoli eventi"

8. Abilita l'evento PUSH e Pull Request

9. Assicurati che "Attivo" sia selezionato

10. Infine, fai clic sul pulsante "Aggiungi webhook".

Controlla lo screenshot qui sotto per i dettagli.

Jenkins ora riceverà notifiche di richiesta push e pull per quel repository e le build correlate verranno attivate automaticamente.

Creazione del primo lavoro su Jenkins

Ora vai alla nostra dashboard Jenkins e seleziona Nuovo articolo quindi Inserisci il nome di un oggetto seleziona Progetto Freestyle .

Dopo aver cliccato su ok verrai reindirizzato alla sezione di configurazione.

Siamo nella scheda generale in questo momento, come mostrato nello screenshot qui sotto. In generale, scheda fornisce la descrizione del progetto e fai clic su progetto Github, qui inserisci il nostro URL GitHub per il progetto.

Ora vai su Gestione del codice sorgente, quindi fai clic su Git e inserisci il nostro URL del repository da cui vogliamo prendere i codici.

Aggiungiamo già le credenziali GitHub, facciamo clic sul menu a discesa e selezioniamo nome utente e password GitHub.

Quindi, vai su Rami per creare e seleziona */ramo principale, possiamo aggiungere qualsiasi ramo secondo i requisiti del nostro progetto.

Ora vai alla scheda Build Trigger e seleziona Github hook trigger per l'opzione di polling GITScm, Questo verrà automaticamente
costruito ogni volta che apportiamo modifiche al repository GitHub.

Ora vai a build Environment e seleziona Invia file o esegui comandi su SSH dopo l'esecuzione della build.

Questo invierà i file al server remoto dopo l'esecuzione della build.

Vai a Editori SSH --> Server SSH --> seleziona il nome del server dal menu a tendina

Qui possiamo anche impostare il parametro Advanced, ma attualmente andiamo con le impostazioni di base.

Ora dobbiamo aggiungere il tipo di file che vogliamo copiare su ssh, qui selezioniamo tutte le cartelle e i file del nostro repository GitHub. Per aggiungere file e selezionare la cartella, aggiungi **/* nei file di origine.

In modo simile possiamo dare qualsiasi comando nella casella di testo del comando Exec, che verrà eseguito sul nostro server remoto.

Quindi specifica la directory remota in cui dobbiamo copiare i nostri file. Questa è un'opzione opzionale.

Editori SSH --> Trasferimenti --> Trasferimenti Set --> File di origine --> aggiungi **/*

Editori SSH --> Trasferimenti --> Trasferimenti impostati --> Directory remota --> /jenkins-test

Editori SSH --> Trasferimenti --> Trasferimenti Set --> Comando Exec --> Comando

Per impostazione predefinita, Jenkins escluderà determinati file come .git .svn .gitignore ecc. Qui vogliamo copiare tutti i file sul server remoto. Per questo, fai clic sul pulsante Avanzate appena sotto il comando Exec e seleziona l'opzione "Nessuna esclusione predefinita".

Questo è tutto, abbiamo molte opzioni nelle azioni di post-compilazione che possiamo utilizzare in base alle esigenze del nostro progetto.

Test di costruzione

È ora di testare la nostra configurazione.

Vai alla dashboard di Jenkins e quindi fai clic sul nostro progetto Jenkins-test.

Quindi fai clic sull'opzione Crea ora per la build, se il processo di build non è riuscito mostrerà il numero di versione della build con un'icona gialla.

Verifichiamo il nostro processo di build, fai semplicemente clic sul numero di build come mostrato nello screenshot.

Ora fai clic su Uscita console. Qui possiamo vedere ogni processo in modalità dettagliata.

Alla fine, vedremo "Finished:SUCCESS" riga alla fine dell'output della console.

Congratulazioni! il nostro Jenkins si è integrato con successo con GitHub ora e pronto per l'uso.


Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare dig su CentOS 7 e 8

  3. Come installare Node.js e NPM su CentOS 7

  4. Come installare Jenkins su CentOS 7

  5. Come installare Node.js e NPM su CentOS

Come installare e configurare Samba su CentOS 8

Come installare e utilizzare Terraform su CentOS 8

Come installare Jenkins su CentOS 8/RHEL 8 e CentOS 7/RHEL 7

Come installare e configurare Jenkins su CentOS 8 / RHEL 8

Come installare e configurare Jenkins in Rocky Linux/Centos 8

Come installare Jenkins su CentOS 7?