Wat is Jenkins?? Jenkins is een gratis en open source automatiseringstool die kan worden gebruikt om repetitieve technische taken te automatiseren met behulp van continue integratie en continue levering.
In deze tutorial leggen we uit hoe je Jenkins installeert met Docker op Ubuntu 18.04 server. We zullen ook uitleggen hoe je Jenkins met Docker kunt uitvoeren op een manier om Jenkins-gegevens en -configuraties persistent te houden.
Vereisten
- Een server waarop Ubuntu 18 . draait.04 met minimaal 2 GB RAM.
- Er is een root-wachtwoord ingesteld op uw server.
Beginnen
Laten we beginnen met het updaten van de repository van uw server met de nieuwste versie. U kunt het bijwerken met de volgende opdracht:
apt-get update -yapt-get upgrade -y
Nadat de repository is bijgewerkt, start u uw server opnieuw om al deze wijzigingen toe te passen.
Docker installeren
Vervolgens moet u Docker op uw server installeren.
Download en voeg eerst de Docker CE GPG-sleutel toe met de volgende opdracht:
wget https://download.havenarbeider.com/linux/ubuntu/gpgapt-key add gpg
Voeg vervolgens de Docker CE-repository toe aan APT met de volgende opdracht:
nano /etc/apt/sources.lijst.d/docker.lijstVoeg de volgende regel toe:
deb [arch=amd64] https://download.havenarbeider.com/linux/ubuntu xenial stableSla het bestand op en sluit het als u klaar bent. Werk vervolgens de repository bij met de volgende opdracht:
apt-get update -yNadat de repository is bijgewerkt, installeert u Docker CE met de volgende opdracht:
apt-get install docker-ce -yControleer na het installeren van Docker CE de Docker-installatie met de volgende opdracht:
systemctl status dockerDocker-volume maken voor gegevens en logboek
Docker-volume is een methode voor het bewaren van gegevens en configuratie in Docker-containers. Wanneer u een container verwijdert, zijn de gegevens en configuraties nog steeds beschikbaar in het Docker-volume. U moet dus een gegevens- en logvolume maken om een back-up te maken van Jenkins-gegevens en configuraties, inclusief logs, plug-ins, plug-inconfiguratie en taakconfiguratie.
Laten we beginnen met het maken van volume voor gegevens en loggen met de volgende opdracht:
docker-volume creëer jenkins-datadocker-volume maak jenkins-log
Nadat de volumes zijn gemaakt, kunt u ze weergeven met de volgende opdracht:
docker-volume lsU zou de volgende uitvoer moeten zien:
DRIVER VOLUME NAAMlokaal jenkins-data
lokaal jenkins-log
Installeer Jenkins met Docker
Vervolgens moet u een docker-bestand maken om een Jenkins-afbeelding op te halen en te bouwen met de vereiste instellingen.
U kunt een docker-bestand maken met de volgende opdracht:
mkdir dockernano-docker/docker-bestand
Voeg de volgende regels toe:
VAN jenkins/jenkinsLABEL-onderhouder="[e-mail beveiligd]"
GEBRUIKER root
RUN mkdir /var/log/jenkins
RUN mkdir /var/cache/jenkins
RUN chown -R jenkins:jenkins /var/log/jenkins
RUN chown -R jenkins:jenkins /var/cache/jenkins
GEBRUIKER jenkins
ENV JAVA_OPTS="-Xmx8192m"
ENV JENKINS_OPTS="--handlerCountMax=300 --logfile=/var/log/jenkins/jenkins.log
--webroot=/var/cache/jenkins/war"
Sla het bestand op en sluit het als u klaar bent. Bouw vervolgens de Jenkins-afbeelding met de volgende opdracht:
cd-dockerdocker build -t myjenkins .
U zou de volgende uitvoer moeten zien:
Bouwcontext verzenden naar Docker-daemon 2.048kBStap 1/10: VAN jenkins/jenkins
---> ae831925b271
Stap 2/10 : LABEL-onderhouder="[email protected]"
---> Hardlopen in 673bf1ecc3ea
Tussenbak verwijderen 673bf1ecc3ea
---> cad1bee88092
Stap 3/10: GEBRUIKER root
---> Inlopen in 36909c427d44
Tussenbak verwijderen 36909c427d44
---> 2c381cc3a773
Stap 4/10: RUN mkdir /var/log/jenkins
---> Rennen in 337c0310db99
Tussenbak verwijderen 337c0310db99
---> 5aa93b90c67e
Stap 5/10: RUN mkdir /var/cache/jenkins
---> Hardlopen in 2c77577ae28b
Tussenbak verwijderen 2c77577ae28b
---> 5016430c07eb
Stap 6/10: RUN chown -R jenkins:jenkins /var/log/jenkins
---> Ingevoerd e4c820f66103
Tussenbak verwijderen e4c820f66103
---> c8d2830a84c5
Stap 7/10: RUN chown -R jenkins:jenkins /var/cache/jenkins
---> Inrijden d024606146d5
Tussenbak verwijderen d024606146d5
---> a11d613cff18
Stap 8/10: GEBRUIKER jenkins
---> Inlopen 478f3c067131
Tussenbak verwijderen 478f3c067131
---> edea568d5564
Stap 9/10: ENV JAVA_OPTS="-Xmx8192m"
---> Inlopen in 5ae52922f52b
Tussenbak verwijderen 5ae52922f52b
---> cb1285b1bc72
Stap 10/10: ENV JENKINS_OPTS="--handlerCountMax=300 --logfile=/var/log/jenkins/jenkins.log
--webroot=/var/cache/jenkins/war"
---> Rennen in 973fb9257c29
Tussenbak verwijderen 973fb9257c29
---> b131c5adf03e
Met succes gebouwd b131c5adf03e
Succesvol getagd myjenkins:latest
De nieuwe Jenkins-afbeelding met de naam myjenkins is succesvol gebouwd.
Voer Jenkins-container uit met gegevens- en logvolume
Jenkins-afbeelding is nu gebouwd met de vereiste instellingen. Vervolgens moet u de Jenkins-container uitvoeren door gegevens- en logvolumes op te geven als koppelpunt.
U kunt de Jenkins-container uitvoeren met de volgende opdracht:
docker run -p 8080:8080 -p 50000:50000 --name=jenkins-master --mount source=jenkins-log,target=/var/log/jenkins --mount source=jenkins-data,target=/var/jenkins_home -d mijnjenkins
Nadat de Jenkins-container is gestart, kunt u de actieve container verifiëren met de volgende opdracht:
havenarbeider psU zou de volgende uitvoer moeten zien:
CONTAINER-ID BEELD OPDRACHT GEMAAKT STATUS3dec02a7077c myjenkins "/sbin/tini -- /usr/… " 6 minuten geleden Omhoog 6 minuten
POORTEN NAMEN
0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins-master
Vervolgens moet u het logbestand van jenkins controleren of alles goed werkt of niet:
docker exec jenkins-master tail -f /var/log/jenkins/jenkins.logU zou de volgende uitvoer moeten zien:
Gebruik het volgende wachtwoord om door te gaan met de installatie:
b437ba21655a44cda66a75b8fbddf5b8Dit is ook te vinden op: /var/jenkins_home/secrets/initialAdminPassword
************************************************** **********
************************************************** **********
************************************************** **********
Let op het bovenstaande wachtwoord, u hebt het nodig tijdens de Jenkins-webconfiguratiewizard.
Toegang tot de Jenkins-webinterface
Open nu uw webbrowser en typ de URL http://uw-server-ip:8080. U wordt doorgestuurd naar het Jenkins-configuratiescherm zoals hieronder weergegeven:
Geef uw beheerderswachtwoord op en klik op de Doorgaan met knop. U zou de volgende pagina moeten zien:
Klik nu op de “Installeer voorgestelde plug-ins” om de vereiste plug-ins te installeren. Zodra de installatie is voltooid. U zou de volgende pagina moeten zien:
Geef nu uw beheerdersgebruikersnaam, wachtwoord en volledige naam op en klik vervolgens op de Sparen en Af hebben knop. U zou de volgende pagina moeten zien:
Klik nu gewoon op de Opslaan en voltooien knop. Nadat de installatie met succes is voltooid, zou u de volgende pagina moeten zien:
Klik nu op de “Begin Jenkins te gebruiken“. U wordt doorgestuurd naar het Jenkins-dashboard zoals weergegeven op de volgende pagina:
Klik nu op de “nieuwe banen creëren” knop. U zou de volgende pagina moeten zien:
Geef nu uw taaknaam op en klik op de OK knop. U zou de volgende pagina moeten zien:
Klik nu op de knop Opslaan om sparen alle instellingen. U zou uw nieuw gecreëerde vacatures op de volgende pagina moeten zien:
Persistente gegevens van Jenkins testen
Jenkins is nu geïnstalleerd en geconfigureerd. Vervolgens moet u testen of Jenkins-gegevens en -logboek nog steeds aanwezig zijn na het verwijderen van de Jenkins-container.
Om dit te doen, stop en verwijder eerst de Jenkins-container met de volgende opdracht:
docker stop jenkins-masterdocker rm jenkins-master
Start nu de Jenkins-container opnieuw met de volgende opdracht:
docker run -p 8080:8080 -p 50000:50000 --name=jenkins-master --mount source=jenkins-log,target=/var/log/jenkins --mount source=jenkins-data,target=/var/jenkins_home -d mijnjenkins
Zodra de Jenkins-container is gestart, opent u uw webbrowser en typt u de URL http://uw-server-ip:8080. U wordt doorgestuurd naar de volgende pagina:
Geef nu uw beheerdersgebruikersnaam en wachtwoord op en klik vervolgens op de Teken in knop. U zou het Jenkins-dashboard op de volgende pagina moeten zien:
Dat betekent dat je alle gegevens, logs, setup-configuratie en plugin-installaties hebt bewaard. Je zou ook moeten zien dat je myjenkinsjob er nog steeds is.
CONCLUSIE
Nu kunt u uw devop-proces containeriseren met Jenkins en Docker, veel plezier!.