Preduvjeti
Korak 1: Ažurirajte svoj CentOS 7 sustav
Korak 2: Instalirajte Javu
Korak 3: Instalirajte Jenkins
Korak 4: Instalirajte Nginx (opcionalno)
Jenkins je popularan open source CI (Continuous Integration) alat koji se naširoko koristi za razvoj projekata, implementaciju i automatizaciju.
Ovaj će vas članak voditi kroz proces instaliranja Jenkinsa na instancu poslužitelja Vultr CentOS 7. Kako bi se posjetiteljima olakšao pristup, Nginx će također biti instaliran kao obrnuti proxy za Jenkins.
Preduvjeti
Prije nego što nastavite, morate imati:
- Razmjestio instancu poslužitelja Vultr CentOS 7 od nule.
- Prijavljeni ste na vaš stroj kao nekorijenski korisnik sa sudo privilegijama.
Korak 1: Ažurirajte svoj CentOS 7 sustav
Jedna od najboljih praksi administratora sustava Linux je ažuriranje sustava. Instalirajte najnovije stabilne pakete, a zatim ponovno pokrenite.
sudo yum install epel-release
sudo yum update
sudo reboot
Kada ponovno pokretanje završi, prijavite se s istim sudo korisnikom.
Korak 2: Instalirajte Javu
Prije nego što možete instalirati Jenkins, morate postaviti Java virtualni stroj na vašem sustavu. Evo, instalirajmo najnoviju OpenJDK Runtime Environment 1.8.0 koristeći YUM:
sudo yum install java-1.8.0-openjdk.x86_64
Nakon instalacije, možete to potvrditi pokretanjem sljedeće naredbe:
java -version
Ova naredba će vam reći o Java runtime okruženju koje ste instalirali:
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Kako biste pomogli aplikacijama temeljenim na Javi da pravilno lociraju Java virtualni stroj, trebate postaviti dvije varijable okruženja: "JAVA_HOME" i "JRE_HOME".
sudo cp /etc/profile /etc/profile_backup
echo 'export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk' | sudo tee -a /etc/profile
echo 'export JRE_HOME=/usr/lib/jvm/jre' | sudo tee -a /etc/profile
source /etc/profile
Konačno, možete ih ispisati za pregled:
echo $JAVA_HOME
echo $JRE_HOME
Korak 3: Instalirajte Jenkins
Koristite službeni YUM repo da instalirate najnoviju stabilnu verziju Jenkinsa, koja je 1.651.2u trenutku pisanja:
cd ~
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
Pokrenite Jenkins uslugu i postavite je da radi u vrijeme pokretanja:
sudo systemctl start jenkins.service
sudo systemctl enable jenkins.service
Kako biste posjetiteljima omogućili pristup Jenkinsu, morate dopustiti ulazni promet na portu 8080:
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
Sada testirajte Jenkinsa tako što ćete posjetiti sljedeću adresu iz svog web preglednika:
http://<your-Vultr-server-IP>:8080
Korak 4: Instalirajte Nginx (opcionalno)
Kako biste posjetiteljima olakšali pristup Jenkinsu, možete postaviti Nginx reverse proxy za Jenkins, tako da posjetitelji više neće morati unositi broj porta 8080 kada pristupaju vašoj Jenkins aplikaciji.
Instalirajte Nginx koristeći YUM:
sudo yum install nginx
Izmijenite konfiguraciju Nginxa:
sudo vi /etc/nginx/nginx.conf
Pronađite dva retka u nastavku:
location / {
}
Umetnite šest redaka ispod u segment { }:
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
Konačni rezultat bi trebao biti:
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Spremi i zatvori:
:wq
Pokrenite i omogućite Nginx uslugu:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Dopusti promet na portu 80:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Na kraju, posjetite sljedeću adresu iz svog web preglednika kako biste potvrdili instalaciju:
http://<your-Vultr-server-IP>