GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nakonfigurovat Jenkins s SSL za Nginx na Ubuntu 20.04

Jenkins je nástroj pro automatizaci nástrojů s otevřeným zdrojovým kódem pro nastavení celého kanálu dodávání softwaru – nepřetržité doručování. To vývojářům umožňuje řídit a řídit procesy dodávání softwaru v průběhu celého životního cyklu, aby mohli svůj software spolehlivě sestavovat, testovat a nasazovat.

Jenkins má rozšiřitelnou a živou, aktivní komunitu. Je napsán v Javě. Jenkins obecně běží jako samostatná vestavěná Java servletová aplikace. Je také možné spustit v kontejnerech Java servletů, jako je Apache Tomcat nebo GlassFish.

V tomto tutoriálu se naučíme, jak konfigurovat Jenkinse s SSL za Nginx na Ubuntu 20.04 .

Předpoklady

  • Server Ubuntu 20.04
  • Uživatel s oprávněními sudo
  • Minimálně 1 GB paměti RAM
  • Nainstalován Oracle JDK 11 nebo vyšší.

Krok 1:Nainstalujte Jenkins na Ubuntu

Balíček Jenkins dostupný ve výchozím úložišti Ubuntu je s největší pravděpodobností za nejnovější verzí. Je doporučeno nainstalovat Jenkin z plánovaného balíčku údržby, který je dostupný v oficiálním úložišti.

Nejprve do systému přidáme klíč úložiště.

$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

Při psaní této příručky postup nainstaluje verzi 2.303.3 z Jenkinse

Dále přidáme úložiště balíčků do sources.list soubor:

$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

Měli bychom aktualizovat mezipaměť úložiště

$ sudo apt update

Nyní můžete nainstalovat Jenkins:

$ sudo apt install jenkins

Poté spusťte službu

$ sudo systemctl start jenkins

Pojďme nakonfigurovat službu tak, aby se automaticky spouštěla ​​se serverem

$ sudo systemctl enable jenkins

Můžete zkontrolovat stav služby

$ sudo systemctl status jenkins

Verzi si můžete zkontrolovat v souboru /var/lib/jenkins/config.xml

$ cat /var/lib/jenkins/config.xml
<?xml version='1.1' encoding='UTF-8'?> 
<hudson>   
      <disabledAdministrativeMonitors/>   
      <version>2.303.3</version>
...
...
</hudson>

Krok 2:Konfigurace Nginx s certifikátem SSL

Nyní, protože budeme používat Nginx k proxy komunikaci, musíme jej nejprve nainstalovat

$ sudo apt install nginx

Nyní musíte zkopírovat certifikát do složky, kterou chcete použít. Budeme mít za to, že již máte svůj certifikát SSL.

Certifikát zkopírujeme

$ sudo cp jenkins.domain.com.crt /etc/nginx/certs/jenkins.domain.com.crt

Poté zkopírujte klíče

$ sudo cp jenkins.domain.com.key /etc/nginx/certs/jenkins.domain.com.key

Abychom se vyhnuli jakémukoli konfliktu s výchozí konfigurací Nginx, odebereme výchozí konfiguraci z sites-enabled adresář

sudo rm /etc/nginx/sites-enabled/default

Nyní vytvoříme konfigurační soubor Jenkinse. Jenkins normálně ke svému běhu používá port 8080, ale protože používáme Nginx, bude naslouchat na portech 80 a 443 a poté s informacemi o názvu domény bude interně proxy komunikaci na portu 8080 pro Jenkins.

Konfigurace, kterou nastavíme, automaticky vynutí všechny HTTP požadavky na HTTPS

$ sudo vim /etc/nginx/sites-available/jenkins.conf
upstream jenkins.domain.com {
       server SERVER_IP:8080;
}
server {
        server_name jenkins.domain.com;
        listen 80 ;
        access_log /var/log/nginx/jenkins.log;
        return 301 https://$host$request_uri;
}
server {
        server_name jenkins.domain.com;
        listen 443 ssl http2 ;
        access_log /var/log/nginx/jenkins.log;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
        ssl_session_timeout 5m;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_certificate /etc/nginx/certs/jenkins.domain.com.crt;
        ssl_certificate_key /etc/nginx/certs/jenkins.domain.com.key;
        add_header Strict-Transport-Security "max-age=31536000";
        location / {
                proxy_pass http://jenkins.domain.com;
        }
}

Kromě konfigurace Jenkins Nginx jsme přidali některé z požadovaných derivátů nginx. Můžete používat a optimalizovat podle požadavků vašeho webového serveru.

Nyní vytvořte symbol konfiguračního souboru, abyste jej povolili

$ sudo ln -s /etc/nginx/sites-available/jenkins.conf /etc/nginx/sites-enabled/jenkins.conf

Nyní spusťte službu Nginx

$ sudo systemctl start nginx

Poté jej povolte při spuštění

$ sudo systemctl enable nginx

Nyní můžete otestovat konfiguraci Nginx

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nyní restartujte službu Nginx, abyste vzali v úvahu konfiguraci

$ sudo systemctl restart nginx

Nyní otevřete porty 80 a 443 na firewallu:

$ sudo ufw allow 80,443/tcp

Před povolením UFW se také ujistěte, že jste otevřeli port ssh, jinak byste mohli ztratit připojení k ssh, pokud se něco pokazí

$ sudo ufw allow 'OpenSSH'

Nyní povolte UFW, pokud ještě ne

$ sudo ufw enable

Krok 3:Přístup a konfigurace Jenkins

Nyní otevřete svůj prohlížeč s URL http://jenkins.domain.com a poté uvidíte stránku Jenkinse, která vás žádá o heslo

Chcete-li získat heslo, měli byste zobrazit obsah souboru, který je označen

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
88ba484d8cff4150a90683a07c89ea7c

Poté vložte heslo a pokračujte na další stránku. Nyní budete mít stránku s výzvou k instalaci výchozích zásuvných modulů nebo k výběru těch, které se mají nainstalovat. V našem případě ponecháme výchozí

Poté uvidíte proces instalace

Nyní musíte vytvořit uživatele admin.

Nyní ověřte adresu URL Jenkinse.

Nyní můžete začít používat Jenkins

Závěr

V tomto tutoriálu jsme se naučili, jak nakonfigurovat Jenkins s SSL za Nginx na Ubuntu 20.04. Můžete začít konfigurovat úlohy a kanály vašeho procesu CI/CD.


Ubuntu
  1. Jak nakonfigurovat origin Cloudflare SSL s Nginx

  2. Jak nainstalovat Elgg s Nginx na Ubuntu 14.04

  3. Jak nainstalovat Joomla s Nginx na Ubuntu 18.04

  1. Jak nainstalovat Jenkins na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat Nginx na Ubuntu 20.04

  3. Jak nainstalovat Elasticsearch na Ubuntu 22.04 s SSL

  1. Jak nainstalovat Nginx na Ubuntu 16.04

  2. Jak nainstalovat a nakonfigurovat Nextcloud s Apache na Ubuntu 18.04

  3. Zabezpečte Nginx pomocí Lets Encrypt na Ubuntu 20.04