GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Jenkins na CentOS a připojit jej ke GitHubu

Jenkins poskytuje široce používané nástroje CI/CD s otevřeným zdrojovým kódem. V tomto článku se naučíme, jak nainstalovat Jenkins a nakonfigurovat jej pomocí Github pro odesílání souborů na server pomocí SSH.

Instalace Jenkins:

Jenkins je aplikace založená na JAVA, takže nejprve musíme nainstalovat JAVA. Následující příkaz nainstaluje JAVA na centos 7.

sudo yum install java-1.8.0-openjdk-devel

Ověřte verzi 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)

Nyní nakonfigurujte úložiště Jenkins pomocí následujících příkazů.

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

Zobrazí se následující výstupy.

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

Poté spusťte následující příkaz pro přidání Jenkinsova klíče.

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

Nyní jsme nakonfigurovali úložiště Jenkins a jsme připraveni nainstalovat Jenkins pomocí následujících jednoduchých příkazů.

sudo yum install jenkins

Po dokončení instalace zkontrolujte službu Jenkins a povolte ji při restartu systému.

sudo systemctl start Jenkins
sudo systemctl enable jenkins

Nyní restartujte systém a pomocí následujícího příkazu se ujistěte, že služba jenkins běží.

sudo systemctl enable jenkins

Nyní povolte Jenkinsovi ve firewallu.

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

Konfigurovat nastavení:

Nemůžeme použít Jenkins přímo, musíme zadat název domény nebo IP adresu do webového prohlížeče a poté zadat výchozí Jenkins číslo portu 8080.

Na výše uvedeném snímku obrazovky musíme jednou zadat automaticky vygenerované heslo Jenkins. Spusťte následující příkaz a získejte heslo.

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

Výsledkem bude výstup jako 2179c452db3b45f98cf9e4c4961ab635

Po zadání hesla musíme nainstalovat pluginy do systému Jenkins. Za tímto účelem jednoduše vyberte nainstalovaný navrhovaný plugin a nainstalujte všechny výchozí pluginy.

Vyplňte všechny údaje a klikněte na uložit a pokračovat.

Nyní se zeptá na konfiguraci instance, kde můžeme také změnit výchozí číslo portu.

Nyní jsou naše Jenkiny uložené a připravené k použití.

Gratulujeme, nové nastavení Jenkins bylo úspěšně dokončeno a připraveno k použití.

Následující snímek obrazovky ukazuje výchozí řídicí panel pro Jenkins.

Konfigurace Jenkins:

Instalovat pluginy:

Než přejdeme k dalším krokům, nezapomeňte nainstalovat následující pluginy.

Přejděte na Spravovat Jenkins -> Spravovat plugin -> Dostupné -> filtr -> vyhledejte následující plugin, který je potřeba pro integraci s GitHub.

Publikovat přes SSH
Git
Plugin GitHub
Plugin klienta Git

Zde plugin Publish Over SSH potřeboval poslat naše soubory na server přes SSH.

Přidat přihlašovací údaje:

Potřebujeme přidat přihlašovací údaje serveru do Jenkins.

Přejděte na Jenkins Dashboard → přihlašovací údaje → systém → Globální přihlašovací údaje (neomezené) → Přidat přihlašovací údaje

Můžeme vybrat typ identifikačních údajů, které chceme nainstalovat. Zde přidáme uživatelské jméno a heslo GitHub pro pozdější použití.

ssh na serveru Jenkins.

Jenkins se může připojit ke vzdálenému serveru pomocí ssh a je schopen spouštět skripty, příkazy nebo kopírovat soubory z jednoho serveru na druhý.

Pro tento účel potřebujeme vytvořit ssh spojení mezi Jenkins serverem a vzdáleným serverem.

Další krok přidá přihlašovací údaje SSH na Jenkins, který se chceme připojit k serveru Jenkins.

Chceme se připojit k webovému serveru od Jenkins s uživatelem root, například náš webový server je 138.197.151.144 a uživatel root, takže se musíme k tomuto serveru přihlásit pomocí ssh.

ssh [email protected]

Nyní přejděte do domovského adresáře a cd do složky .ssh.

cd ~/.ssh

Dalším krokem bude vygenerování soukromého a veřejného klíče pro uživatele root na našem webovém serveru.

ssh-keygen -t rsa -f private_key_for_jenkins

Po spuštění výše uvedeného příkazu se zeptá na "Enter passphrase", heslo zadávat nemusíme. Klikněte tedy dvakrát na enter a vygenerují se dva klíče na webovém serveru private_key_for_jenkins a private_key_for_jenkins.pub.

Zde private_key_for_jenkins je soukromý klíč 138.197.151.144 a obsah tohoto souboru musíme použít na náš server Jenkins.

Máme druhý soubor s názvem private_key_for_jenkins.pub, což je veřejný klíč webového serveru. Potřebujeme zkopírovat jeho data do jiného souboru s názvem authorised_keys umístěného ve stejném adresáři.

Ve většině případů jsou soubory authorised_keys přítomny ve složce ~/.ssh/, ale někdy chybí a musíme vygenerovat nové soubory authorised_keys. Jednoduše spusťte následující příkaz a zkopírujte jej do authorised_keys, tento příkaz také vygeneruje nové authorised_keys, pokud je k dispozici.

cat private_key_for_jenkins.pub > authorized_keys

Nyní se přihlaste k serveru Jenkins a poté přejděte na Spravovat Jenkins -> Konfigurovat systémy

Alternativně můžeme přímo napsat http://ip_address:8080/configure do webového prohlížeče, tím se otevře Configure Systems pro konfigurace ssh.

Nyní vyhledejte sekci SSH servers Server v "Configure Jenkins". Vezměte prosím na vědomí, že tato sekce je k dispozici pouze v případě, že máme na serveru Jenkins nainstalován „SSH Credential Plugin“.

Přejděte do sekce Publikovat přes SSH přejděte na klíč a vložte obsah private_key_for_jenkins

Nyní v možnosti Servery SSH klikněte na tlačítko Přidat a zadejte podrobnosti o serveru SSH. Ssh port a další nastavení můžeme změnit z možnosti Upřesnit.

Po provedení změn klikněte na ‚Test Configuration‘ a pokud jsou všechna nastavení správná, měli bychom obdržet zprávu o úspěchu, jak je znázorněno na výše uvedeném snímku obrazovky.

Upozorňujeme, že můžeme přidat více serverů podle našeho požadavku na publikování stejného kódu na více serverech pomocí ssh.

Za tímto účelem musíme vygenerovat soukromý klíč pro každý server, jak jsme zmínili dříve, a musíme přidat jeho soukromý klíč na server Jenkins.

Nakonec klikněte na tlačítko „Uložit“ a uložte naše změny. Úspěšně jsme vytvořili ssh připojení ke vzdálenému serveru. Nyní můžeme odeslat soubor na vzdálený server a také na tomto serveru spustit libovolný příkaz nebo skript.

Konfigurace Jenkins s Github

Pro automatizaci sestav spouštěných požadavkem PUSH a PULL je třeba přidat Jenkins WebHook do každého úložiště GitHub nebo webhooků organizace.

Kroky ke konfiguraci webhooku z úložiště Github.

1. Přihlaste se ke svým účtům GitHub

2. Klikněte na úložiště, na kterém potřebujeme nastavit webhook

3. přejděte na možnost nastavení daného úložiště

4. Klikněte na Webhooks a přidejte Payload URL, vypadá to jako http://jenkins_ip:8080/github-webhook/

5. Vyberte "application/json" jako typ kódování z Content type

6. Ponechte „Secret“ prázdné (pokud nebylo vytvořeno a nakonfigurováno tajemství v části Jenkins „Configure System -> GitHub plugin“)

7. Vyberte „Nechte mě vybrat jednotlivé události“

8. Povolte událost PUSH a Pull Request

9. Ujistěte se, že je zaškrtnuto "Aktivní"

10. Nakonec klikněte na tlačítko „Přidat webhook“.

Podrobnosti naleznete na níže uvedeném snímku obrazovky.

Jenkins nyní bude dostávat oznámení o požadavku push a pull pro toto úložiště a související sestavení budou automaticky spuštěna.

Vytvoření první zakázky na Jenkins

Nyní přejděte na náš panel Jenkins a vyberte možnost Nová položka poté Zadejte název položky vyberte Projekt Freestyle .

Po kliknutí na ok budete přesměrováni do konfigurační sekce.

Právě jsme na kartě Obecné, jak je znázorněno na obrázku níže. Obecně platí, že na kartě zadejte popis projektu a klikněte na projekt Github. Zde zadejte naši adresu URL GitHubu pro projekt.

Nyní přejděte do správy zdrojového kódu, klikněte na Git a zadejte adresu URL našeho úložiště, odkud chceme kódy přebírat.

Již jsme přidali přihlašovací údaje GitHub, klikněte na rozbalovací nabídku a vyberte uživatelské jméno a heslo GitHubu.

Dále přejděte na větve a vyberte větev */master, můžeme přidat libovolnou větev podle našich požadavků projektu.

Nyní přejděte na kartu Build Trigger a vyberte Github hook trigger pro možnost dotazování GITScm. Toto se automaticky
sestaví, kdykoli provedeme jakékoli změny v úložišti GitHub.

Nyní přejděte do prostředí sestavení a vyberte možnost Odeslat soubory nebo spustit příkazy přes SSH po spuštění sestavení.

Toto odešle soubory na vzdálený server po spuštění sestavení.

Přejděte na SSH Publishers --> SSH Server --> vyberte název serveru z rozevírací nabídky

Zde můžeme také nastavit parametr Advanced, ale v současné době používáme základní nastavení.

Nyní musíme přidat, jaký druh souboru chceme zkopírovat přes ssh, Zde vybereme všechny složky a soubor našeho úložiště GitHub. Pro přidání souborů a výběr složky stačí přidat **/* do zdrojových souborů.

Podobným způsobem můžeme v textovém poli příkazu Exec zadat libovolný příkaz, který bude proveden na našem vzdáleném serveru.

Poté zadejte vzdálený adresář, do kterého potřebujeme zkopírovat naše soubory. Toto je volitelná možnost.

SSH Publishers --> Transfers --> Transfers Set --> Source files --> add **/*

Vydavatelé SSH --> Přenosy --> Sada převodů --> Vzdálený adresář --> /jenkins-test

SSH Publishers --> Transfers --> Transfers Set --> Exec command --> command

Ve výchozím nastavení Jenkins vyloučí určité soubory jako .git .svn .gitignore atd. Zde chceme zkopírovat všechny soubory na vzdálený server. Klikněte na tlačítko Upřesnit hned pod příkazem Exec a zaškrtněte možnost „Žádné výchozí výjimky“.

To je vše, v akcích po sestavení máme mnoho možností, které můžeme použít podle potřeb našeho projektu.

Test sestavení

Je čas otestovat naši konfiguraci.

Přejděte na panel Jenkins a poté klikněte na náš projekt Jenkins-test.

Poté klikněte na možnost Build Now pro sestavení. Pokud proces sestavení selhal, zobrazí se číslo verze se žlutou ikonou.

Pojďme ověřit náš proces sestavení, jednoduše klikněte na číslo sestavení, jak je znázorněno na snímku obrazovky.

Nyní klikněte na Výstup konzoly. Zde můžeme vidět každý proces v podrobném režimu.

Nakonec uvidíme „Dokončeno:ÚSPĚCH“ řádek na konci výstupu konzoly.

Gratulujeme! náš Jenkins se nyní úspěšně integroval s GitHub a je připraven k použití.


Cent OS
  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Jak nainstalovat dig na CentOS 7 a 8

  3. Jak nainstalovat Node.js a NPM na CentOS

  1. Jak nainstalovat Node.js a NPM na CentOS 7

  2. Jak nainstalovat Jenkins na CentOS 7

  3. Jak nainstalovat a nakonfigurovat Redis na CentOS 7

  1. Jak nainstalovat a nakonfigurovat GitLab na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Redmine na CentOS 7

  3. Jak nainstalovat Jenkins na CentOS 8