Hvad er Jenkins? Jenkins er et gratis og open source automatiseringsværktøj, der kan bruges til at automatisere gentagne tekniske opgaver ved hjælp af kontinuerlig integration og kontinuerlig levering.
I denne vejledning forklarer vi, hvordan du installerer Jenkins med Docker på Ubuntu 18.04 server. Vi forklarer også, hvordan du kører Jenkins med Docker på en måde, der holder Jenkins-data og konfigurationer vedvarende.
Krav
- En server, der kører Ubuntu 18.04 med mindst 2 GB RAM.
- Der oprettes en rodadgangskode på din server.
Kom godt i gang
Lad os begynde at opdatere din servers lager med den nyeste version. Du kan opdatere det med følgende kommando:
apt-get opdatering -yapt-get opgradering -y
Når arkivet er opdateret, skal du genstarte din server for at anvende alle disse ændringer.
Installer Docker
Derefter skal du installere Docker på din server.
Først skal du downloade og tilføje Docker CE GPG-nøgle med følgende kommando:
wget https: // download.docker.com / linux / ubuntu / gpgapt-key tilføj gpg
Dernæst tilføj Docker CE-lageret til APT med følgende kommando:
nano / etc / apt / sources.liste.d / docker.listeTilføj følgende linje:
deb [arch = amd64] https: // download.docker.com / linux / ubuntu xenial stabilGem og luk filen, når du er færdig. Opdater derefter lageret med følgende kommando:
apt-get opdatering -yNår arkivet er opdateret, skal du installere Docker CE med følgende kommando:
apt-get install docker-ce -yEfter installation af Docker CE skal du kontrollere Docker-installationen med følgende kommando:
systemctl status dockerOpret Docker-volumen til data og log
Docker-volumen er en metode til vedvarende data og konfiguration i Docker-containere. Når du fjerner en container, er dataene og konfigurationerne stadig tilgængelige i Docker-diskenheden. Så du bliver nødt til at oprette data- og logvolumener for at sikkerhedskopiere Jenkins-data og -konfigurationer inklusive logs, plugins, plugin-konfiguration og jobkonfiguration.
Lad os starte med at oprette volumen til data og logge med følgende kommando:
docker volumen oprette jenkins-datadocker volumen oprette jenkins-log
Når volumen er oprettet, kan du liste dem med følgende kommando:
docker volumen lsDu skal se følgende output:
FØRERVOLUMENAVNlokale jenkins-data
lokal jenkins-log
Installer Jenkins med Docker
Derefter skal du oprette en docker-fil for at trække og oprette Jenkins-billede med de krævede indstillinger.
Du kan oprette docker-fil med følgende kommando:
mkdir dockernano docker / dockerfil
Tilføj følgende linjer:
FRA jenkins / jenkinsLABEL-vedligeholder = "[email protected]"
BRUGER rod
KØR mkdir / var / log / jenkins
KØR mkdir / var / cache / jenkins
KØR chown -R jenkins: jenkins / var / log / jenkins
KØR chown -R jenkins: jenkins / var / cache / jenkins
BRUGER jenkins
ENV JAVA_OPTS = "- Xmx8192m"
ENV JENKINS_OPTS = "- handlerCountMax = 300 --logfile = / var / log / jenkins / jenkins.log
--webroot = / var / cache / jenkins / war "
Gem og luk filen, når du er færdig. Bygg derefter Jenkins-billedet med følgende kommando:
cd dockerdocker build -t myjenkins .
Du skal se følgende output:
Afsendelse af build-kontekst til Docker-dæmon 2.048 kBTrin 1/10: FRA jenkins / jenkins
---> ae831925b271
Trin 2/10: LABEL vedligeholder = "[e-mail-beskyttet]"
---> Kører i 673bf1ecc3ea
Fjernelse af mellembeholder 673bf1ecc3ea
---> cad1bee88092
Trin 3/10: BRUGER rod
---> Kører i 36909c427d44
Fjernelse af mellembeholder 36909c427d44
---> 2c381cc3a773
Trin 4/10: KØR mkdir / var / log / jenkins
---> Kører i 337c0310db99
Fjernelse af mellembeholder 337c0310db99
---> 5aa93b90c67e
Trin 5/10: KØR mkdir / var / cache / jenkins
---> Kører i 2c77577ae28b
Fjernelse af mellembeholder 2c77577ae28b
---> 5016430c07eb
Trin 6/10: KØR chown -R jenkins: jenkins / var / log / jenkins
---> Kører i e4c820f66103
Fjernelse af mellembeholder e4c820f66103
---> c8d2830a84c5
Trin 7/10: KØR chown -R jenkins: jenkins / var / cache / jenkins
---> Kører i d024606146d5
Fjernelse af mellembeholder d024606146d5
---> a11d613cff18
Trin 8/10: BRUGER jenkins
---> Kører i 478f3c067131
Fjernelse af mellembeholder 478f3c067131
---> edea568d5564
Trin 9/10: ENV JAVA_OPTS = "- Xmx8192m"
---> Kører i 5ae52922f52b
Fjernelse af mellembeholder 5ae52922f52b
---> cb1285b1bc72
Trin 10/10: ENV JENKINS_OPTS = "- handlerCountMax = 300 --logfile = / var / log / jenkins / jenkins.log
--webroot = / var / cache / jenkins / war "
---> Kører i 973fb9257c29
Fjernelse af mellembeholder 973fb9257c29
---> b131c5adf03e
Vellykket bygget b131c5adf03e
Tagget myjenkins med succes: nyeste
Det nye Jenkins-billede med navnet myjenkins er bygget med succes.
Kør Jenkins Container med data og logvolumen
Jenkins-billedet er nu bygget med de krævede indstillinger. Derefter skal du køre Jenkins-container ved at angive data og logvolumener som et monteringspunkt.
Du kan køre Jenkins-containeren med følgende kommando:
docker-kørsel -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 myjenkins
Når Jenkins-containeren er startet, kan du kontrollere den kørende container med følgende kommando:
docker psDu skal se følgende output:
CONTAINER ID BILLEDE KOMMANDO OPRET STATUS3dec02a7077c myjenkins "/ sbin / tini - / usr /…" 6 minutter siden Op 6 minutter
HAVNENAVNE
0.0.0.0: 8080-> 8080 / tcp, 0.0.0.0: 50000-> 50000 / tcp jenkins-master
Derefter skal du kontrollere jenkins-logfilen, om alt fungerer fint eller ej:
docker exec jenkins-master tail -f / var / log / jenkins / jenkins.logDu skal se følgende output:
Brug følgende adgangskode for at fortsætte til installationen:
b437ba21655a44cda66a75b8fbddf5b8Dette kan også findes på: / var / jenkins_home / secrets / initialAdminPassword
************************************************** ***********
************************************************* ***********
************************************************* ***********
Bemærk ovenstående adgangskode, du får brug for det under Jenkins-webopsætningsguiden.
Adgang til Jenkins webgrænseflade
Åbn nu din webbrowser og skriv URL'en http: // din server-ip: 8080. Du vil blive omdirigeret til Jenkins-opsætningsskærmen som vist nedenfor:
Angiv din administratoradgangskode, og klik på Blive ved knap. Du skulle se følgende side:
Klik nu på “Installer foreslåede plugins”For at installere de krævede plugins. Når installationen er afsluttet. Du skulle se den følgende side:
Angiv nu dit admin-brugernavn, din adgangskode og dit fulde navn, og klik derefter på Gemme og Afslut knap. Du skulle se følgende side:
Klik nu bare på Gem og afslut knap. Når installationen er gennemført, skal du se følgende side:
Klik nu på “Begynd at bruge Jenkins“. Du bliver omdirigeret til Jenkins-instrumentbrættet som vist på den følgende side:
Klik nu på “skabe nye job”-Knappen. Du skulle se den følgende side:
Angiv nu dit jobnavn, og klik på Okay knap. Du skulle se den følgende side:
Klik nu på knappen Gem til Gemme alle indstillingerne. Du skal se dine nyoprettede job på den følgende side:
Test Jenkins vedvarende data
Jenkins er nu installeret og konfigureret. Derefter bliver du nødt til at teste, om Jenkins-data og -log stadig er vedvarende efter fjernelse af Jenkins-containeren.
For at gøre det skal du først stoppe og slette Jenkins-containeren med følgende kommando:
docker stop jenkins-masterdocker rm jenkins-master
Start nu Jenkins-containeren igen med følgende kommando:
docker-kørsel -p 8080: 8080 -p 50000: 50000 --navn = jenkins-master --mount source = jenkins-log,target = / var / log / jenkins --mount source = jenkins-data, target = / var / jenkins_home -d myjenkins
Når Jenkins-containeren er startet, skal du åbne din webbrowser og skrive URL'en http: // din-server-ip: 8080. Du bliver omdirigeret til den følgende side:
Angiv nu dit admin-brugernavn og din adgangskode, og klik derefter på Skilt i knap. Du bør se Jenkins-instrumentbrættet på den følgende side:
Det betyder, at du har bevaret alle data, logfiler, konfigurationskonfiguration og plugininstallationer. Du skal også se, at din myjenkinsjob stadig er der.
KONKLUSION
Nu kan du containerisere din devop-proces med Jenkins og Docker, nyd.