Ontgrendelen van CI/CD: Hoe Jenkins succesvol te installeren op Ubuntu

Bent u veel tijd kwijt aan het implementeren van code in uw infrastructuur met veel stappen en software? Maak u geen zorgen, u bent op de juiste plek om te leren hoe u Jenkins kunt installeren, de meest gebruikte open-source tool.

In deze tutorial leert u hoe u Jenkins installeert op een Ubuntu-machine, zodat u code kunt bouwen en implementeren met een druk op de knop.

Lees verder en begin met installeren!

Vereisten

Deze post zal een stapsgewijze tutorial zijn. Zorg ervoor dat u een Ubuntu-machine heeft om te volgen. Deze tutorial maakt gebruik van Ubuntu 18.04 met apache geïnstalleerd.

Java Versie 11 installeren op een Ubuntu Machine

Jenkins is een Continuous Integration (CI) en Continuous Deployment (CD) tool, die je kunt uitvoeren in verschillende servlet-containers, zoals Apache Tomcat of GlassFish. Maar voor deze demo voer je Jenkins uit op zijn ingebouwde Java-servletcontainer server.

Er zijn meerdere Java-implementaties die je kunt gebruiken met Jenkins, maar OpenJDK is de meest populaire, die je zal installeren en gebruiken in deze tutorial.

1. Log in op je Ubuntu-machine met je favoriete SSH-client.

2. Voer vervolgens de volgende commando’s uit om een map met de naam ~/install_jenkins_demo te maken en naar die map te schakelen.

mkdir ~/install_jenkins_demo
cd ~/install_jenkins_demo

3. Voer het apt install-commando hieronder uit om Java op je machine te installeren.

# Installatie van Java Versie: Java SE 11 (LTS)
sudo apt install default-jdk 
Installing Java Version: Java SE 11 (LTS)

4. Voer ten slotte de onderstaande opdracht uit om de versie van geïnstalleerde Java op uw machine te controleren. Hiermee wordt gegarandeerd dat u Java succesvol hebt geïnstalleerd.

# Controleren van de Java-versie om de installatie van Java te verifiëren.
java -version
Checking the Version of Java to verify Java installation

Installeer Jenkins op een Ubuntu 18.04 LTS-instantie

Nu u Java hebt geïnstalleerd op de Ubuntu-machine, is het tijd om Jenkins op uw machine te installeren. Het installeren van Jenkins lijkt behoorlijk op hoe u andere pakketten op uw machine installeert.

Als u nog steeds bent ingelogd op de SSH-client:

1. Voer eerst de opdracht apt update uit om uw systeempakketten bij te werken.

sudo apt update

2. Voer vervolgens de wget opdracht hieronder uit om de Jenkins openbare sleutel aan uw systeem toe te voegen.

Het toevoegen van de openbare sleutel maakt het voor de Jenkins-site mogelijk om het officiële Jenkins-opslagplaats of eventuele benodigde pakketten te downloaden.

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

3. Voer de volgende opdrachten uit om het officiële Jenkins-opslagplaats aan uw systeem toe te voegen en uw systeem bij te werken.

# Het Jenkins officiële opslagplaats aan het systeem toevoegen
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'
# Het pakket bijwerken
sudo apt-get update

4. Voer nu de onderstaande opdracht uit om het Jenkins pakket te installeren.

# Het Jenkins Pakket Installeren
sudo apt-get install Jenkins
Installing the Jenkins package on an ubuntu machine

5. Ten slotte, voer het service commando hieronder uit om de status van de Jenkins-service te verifiëren. # Valideren van de Jenkins-service op Ubuntu-machine service jenkins status

# Valideren van de Jenkins-service op Ubuntu-machine
service jenkins status

Zoals je hieronder kunt zien, toont de status aan dat de Jenkins-service actief is.

Verifying the status of Jenkins service

Configureren van een Jenkins-instantie

Op dit moment ben je halverwege met het succesvol installeren van Jenkins. Maar voordat je het daadwerkelijk gaat gebruiken, moet je het instellen met basisvoorzieningen. Hoe? De eerste stap bij het instellen van Jenkins is het ontgrendelen van de nieuw geïnstalleerde Jenkins.

Assumeer dat je nog steeds ingelogd bent op de SSH-client:

1. Open je favoriete browser en navigeer naar het IP-adres van de server gevolgd door poort 8080 zoals jenkins-ip:8080. Naar de link te zijn genavigeerd, moet je Jenkins ontgrendelen door het administratieve wachtwoord op te geven. Het administratieve wachtwoord is opgeslagen in de map /var/lib/jenkins/secrets/initialAdminPassword op de server (stap twee).

Unlocking Jenkins Instance

2. Voer het cat commando hieronder uit om het beheerderswachtwoord op je machine toe te voegen vanuit de map /var/lib/jenkins/secrets/initialAdminPassword.

cat /var/lib/jenkins/secrets/initialAdminPassword

Zoals je hieronder kunt zien, is de lange tekenreeks in de uitvoer het beheerderswachtwoord. Noteer het beheerderswachtwoord omdat je het nodig zult hebben om Jenkins te ontgrendelen (stap drie).

Checking the Initial Admin Password

3. Schakel terug naar je webbrowser (Jenkins ontgrendelen pagina) en voer het beheerderswachtwoord in dat je genoteerd hebt in stap twee.

Zodra je Jenkins hebt ontgrendeld, wordt je browser doorgestuurd naar een pagina waar je je Jenkins-instantie kunt aanpassen met plugins (stap vier).

4. Op de pagina Aanpassen Jenkins , klik op de optie Voorgestelde plugins installeren .

Jenkins Plugin is een tool van derden die integreert met Jenkins en het uitvoeren van taken zoals de Git plugin mogelijk maakt. De Git-plugin stelt je in staat om verbinding te maken met Git-repo’s, Git-commando’s uit te voeren, enzovoort.

Installing the Jenkins Plugin

5. Vul de gegevens van de beheerder in, zoals hieronder weergegeven, en klik op Opslaan en doorgaan om een beheerder te maken. Deze beheerder stelt je in staat om met Jenkins UI-dashboard of Jenkins-instantie te werken.

Zodra je op Opslaan en doorgaan klikt, krijg je een scherm voor instantieconfiguratie te zien, zoals getoond in stap vijf.

Standaard heeft Jenkins een beheerdersgebruiker aangemaakt met gebruikersnaam/wachtwoord (admin: admin), maar biedt je nog steeds de mogelijkheid om een beheerdersgebruiker naar keuze te maken. Je kunt overslaan en doorgaan als beheerder als je geen aangepaste beheerdersgebruiker wilt maken.

Creating the First Admin user

6. Klik ten slotte op Opslaan en voltooien om de instantieconfiguratie op te slaan.

De instantieconfiguratie stelt je in staat om de Jenkins-URL op te geven die je wilt gebruiken, en in dit geval zul je de standaard-URL gebruiken (d.w.z. server-ip:8080 )

Configuring the Jenkins Instance
Jenkins Running successfully on Port 8080

Het wijzigen van de standaardpoort van een Jenkins-instantie

Voorheen heb je geleerd dat Jenkins standaard draait op poort 8080, wat prima is. Maar wat als je andere toepassingen op dezelfde poort moet laten draaien, zoals Apache of NGINX? Geen zorgen! Je kunt de standaardpoort van Jenkins (8080) wijzigen en de Jenkins-instantie op andere poorten laten draaien.

1. Open het bestand /etc/default/Jenkins in je favoriete teksteditor en wijzig de standaardpoort van 8080 naar 9090 en sla de wijzigingen op.

Changing the Default Jenkins Port

2. Voer vervolgens het onderstaande commando uit om Jenkins opnieuw op te starten, zodat de bijgewerkte configuraties van kracht worden.

sudo systemctl restart jenkins

3. Navigeer ten slotte naar de Jenkins-URL, maar verander deze keer de poort naar 9090, zoals hieronder getoond.

Jenkins Running successfully on Port 9090

Jenkins veilig uitvoeren (HTTPS) met SSL-certificaat

Je Jenkins-instantie draait nu perfect op poort 9090. Maar is het veilig? Nee, dat is het niet. Beveilig je Jenkins-instantie en voorkom dat deze wordt gecompromitteerd door aanvallers door een SSL-certificaat in te schakelen.

SSL-certificaten worden voornamelijk gebruikt om lokaal te testen wanneer er geen certificaat beschikbaar is van een externe certificeringsinstantie.

Om je Jenkins-instantie te beveiligen:

1. Voer elk van de onderstaande commando’s uit om een map met de naam ~/certificates aan te maken om certificaten op te slaan en verander naar die map.

mkdir ~/certificates
cd ~/certificates

2. Voer vervolgens het volgende openssl commando uit om een Certificate Signing Request (CSR) en een privésleutel te genereren.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
Generating a CSR and private key

3. Voer de volgende commando’s uit om een andere map aan te maken (/etc/apache2/ssl) en verplaats de certificaten van de ~/certificates/ map naar de /etc/apache2/ssl map.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

4. Open het standaard SSL Apache siteconfiguratiebestand (/etc/apache2/sites-available/default-ssl.conf) en voeg de onderstaande regels toe. Zorg ervoor dat je <my-server-name> vervangt door de daadwerkelijke naam van je server.

In de onderstaande code geef je de locatie op van de (certificaatsleutel en bestand) waar je eerder de SSL-certificaten hebt gekopieerd. Voeg ook voor Jenkins toe om door te sturen naar poort 9090, het ProxyPass-argument toe en schakel ProxyPreserveHost in.

ServerName <my-server-name>
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
Updating default SSL Apache site configuration file

5. Voer nu elk van de onderstaande commando’s uit om de SSL-module in te schakelen, de site die je hebt aangepast (stap vier) in te schakelen en de Apache-service te herstarten.

# Schakel de SSL-module in, zodat je met SSL-verbindingen kunt werken.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Schakel de site die je hebt aangepast in (stap vier)
sudo a2ensite default-ssl.conf
# Herstart de Apache-service
sudo service apache2 restart

6. Navigeer ten slotte naar je Jenkins-instantie, maar deze keer met behulp van HTTPS, zoals hieronder weergegeven.

Zoals je kunt zien, wordt Jenkins met succes geopend met SSL-verbindingen op de HTTPS-poort. Maak je geen zorgen als je een waarschuwingssymbool ziet met de boodschap Niet veilig. Je krijgt die waarschuwing omdat je een zelfondertekend certificaat gebruikt (door jou gemaakt) en niet door de certificaatautoriteit.

Accessing Jenkins Instance with SSL connections on HTTPS port

Conclusie

In deze tutorial heb je geleerd hoe je Jenkins installeert op een Ubuntu-machine, en controleert of je veilig toegang hebt tot een Jenkins-instantie.

Wat zijn nu je plannen om je vaardigheden met Jenkins te verbeteren? Misschien webimplementaties automatiseren? Of een Jenkins CI/CD-pijplijn maken om je softwareontwikkelingsproces te verbeteren?

Source:
https://adamtheautomator.com/install-jenkins/