Tässä esimerkissä kuvaillaan askeleet GitHubissa sijaitsevan Java projektin testien suorituksen ja koonnin Mavenillä, laadun tarkistuksen SonarQubella, ja Docker "kuvan" luomisen Jenkinsillä. Java, Jenkins ja Docker asennuksiin löytyy scriptit. Jos suoritat scriptit, voit jättää välistä ohjeiden asennus vaiheet.
Ohjeessa käytetty Ubuntu 22.04 LTS.
Jos käytät WSL, systemctl
komennot eivät toimi ennen kun luot tiedoston /etc/wsl.conf
seuraavalla sisällöllä ja käynnistät WSL uudestaan.
[boot]
systemd=true
Päivitetään asennetut ohjelmat ja varmistetaan että tarvittavat ohjelmat on asennettu:
sudo apt update && sudo apt upgrade -y
sudo apt install wget curl zip ca-certificates fontconfig -y
Jenkinsin suosittelema veriso Javaa asentuu yksinkertaisesti komennolla
sudo apt install openjdk-17-jre -y
Tämän jälkeen lisää Javan sijainti JAVA_HOME
muuttujaan ja lisää bin
kansio PATH
muuttujaan. Se tapahtuu lisäämällä /etc/profile
tiedostoon seuraavat rivit. Komento readlink -f /usr/bin/java | sed "s:/bin/java::"
koostuu kahdesta osasta. Ensimmäinen komento readlink -f /usr/bin/java
katsoo mihin sijaintiin /usr/bin/java
on linkki, ja |
ohjaa sijainnin toiseen komentoon sed "s:/bin/java::"
, joka positaa lopusta /bin/java
.
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
export PATH=$PATH:$JAVA_HOME/bin
Tallennuksen jälkeen suorita /etc/profile
komennolla
. /etc/profile
Lisätään Jenkinsin GPG avain:
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
Lisätään Jenkinsin arkisto Apt lähteeksi:
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
Asennetaan Jenkins:
sudo apt update
sudo apt install jenkins
Jenkins käyttää oletuksena porttia 8080
. Portin voi vaihtaa tiedostosta /lib/systemd/system/jenkins.service
ja etsimällä rivin Environment="JENKINS_PORT=
... ja vaihtamalla portin. Muutokset ladataan seuraavalla komennolla.
sudo systemctl daemon-reload
Portti pitää avata palomuurista jotta voidaan yhdistää Jenkinsin web käyttöliittymään. Se thdään komennolla
sudo ufw allow 8080
Jenkinsin web käyttöliittymä löytyy oletuksena portista 8080
. Ensimmäisen kirjautumiskerran admin salasanan voi tarkistaa helpoiten komennolla
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Kirjautumisen jälkeen suorita Jenkinsin alkutoiminnot. Jenkinsin suosittelemat laajennukset ovat hyvät. Käyttäjän luomisen ja Jenkins URL asettamisen voi ohittaa. Nyt olet valmis aloittamaan Jenkinsin käytön.
Asennetaan Pipeline Maven Integration
laajennus Jenkinsiin. Laajennuksien asennus löytyy Manage Jenkins > Plugins > Available Plugins
Etsi laajennus saatavilla olevista laajennuksista ja valitse se asennettavaksi.
Laajennukset asentuvat Install
napista.
Muokkaa jenkinsin työkaluja Manage Jenkins > Tools
Lisää automaattisesti asentuva Maven. Nimeä käytetään myöhemmin Jenkinsfile.
Lisätään Dockerin GPG avain:
sudo wget -O /etc/apt/keyrings/docker.asc \
https://download.docker.com/linux/ubuntu/gpg
Lisätään Dockerin arkisto Apt lähteeksi:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Lopuiksi päivitetään Apt ja asennetaan Dockerin ohjelmat:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin -y
Luo ryhmä docker
, lisää käyttäjä jenkins
siihen, ja lopuksi päivitä ryhmä.
sudo groupadd docker
sudo usermod -aG docker jenkins
Käynnistä palvelin uudelleen.
Aloita Docker daemon komennolla
sudo systemctl start docker
Docker kuvia voi kopioida ja uudelleen käyttöönottaa seuraavilla komennoilla.
docker save -o fedora-all.tar fedora
docker load -i fedora-all.tar
Repossa tulee Jenkinsfile, joka määrittelee pipelinen, sekä pipelinen tarvitsema dockerfile.
Käytä Jenkinsfile aina '
merkkijonoihin, sillä "
hajottaa pipelinen, eikä se osaa kertoa miksi. "
käyttö merkkijonojen sisällä toimii.
Luodaan uusi pipeline Jenkinsissä
Lisää pipeline script from SCM ja aseta projektisi git url.
Nyt voit ajaa pipeline buildin.
Ohjeet SonarQuben asennukseen ja käyttöönottoon Jenkinsissä löytyy täältä.
Voit halutessasi jatkaa lisäohjeisiin, jossa käsitellään virtuaalipalvelimia, SSH avainpareja ja GitHub Webhook käyttöä Jenkinsin automatisointiin.
- Jenkins User Handbook: Installing on Linux
- docker.docs: Install Docker Engine on Ubuntu
- docker.docs: Linux post-installation steps for Docker Engine
- docker.docs: docker image save
- docker.docs: docker image load
- StackOverflow: How to set JAVA_HOME in Linux for all users
- StackOverflow: How to reload profile settings without logging out and back in again?
- Microsoft Learn: Use systemd to manage Linux services with WSL
- ChatGPT 🙏
Tehnyt Oskari Pahkala 2024