Preduvjeti
Instalirajte Javu
Instalirajte GoCD
Konfigurirajte pohranu blokova
Postavite vatrozid
Postavite autentifikaciju
Osiguravanje GoCD-a pomoću Let's Encrypt SSL
Instalacija GoCD agenta
GoCD je open source sustav kontinuirane isporuke i automatizacije. Omogućuje vam modeliranje složenih tijekova rada koristeći njegovo paralelno i sekvencijalno izvršenje. Njegova mapa toka vrijednosti omogućuje vam jednostavno vizualiziranje složenog tijeka rada s lakoćom. GoCD vam omogućuje da jednostavno usporedite dvije verzije i implementirate bilo koju verziju aplikacije koju želite. GoCD ekosustav sastoji se od GoCD poslužitelja i GoCD agenta. GoCD je odgovoran za kontrolu svega kao što je pokretanje web-baziranog korisničkog sučelja te upravljanje i pružanje poslova agentu. Go agenti odgovorni su za izvođenje poslova i implementacije.
Preduvjeti
- Instanca poslužitelja Vultr CentOS 7 s najmanje 1 GB RAM-a.
- Korisnik sudoa .
- Naziv domene usmjeren prema poslužitelju.
Za ovaj vodič koristit ćemo 192.168.1.1kao javnu IP adresu i gocd.example.comkao ime domene usmjereno na Vultr instancu. Svakako zamijenite sva pojavljivanja primjera naziva domene i IP adrese stvarnim.
Ažurirajte svoj osnovni sustav pomoću vodiča Kako ažurirati CentOS 7 . Nakon što se vaš sustav ažurira, nastavite s instalacijom Jave.
Instalirajte Javu
GoCD zahtijeva Java verziju 8 i podržava i Oracle Java i OpenJDK. U ovom vodiču ćemo instalirati Javu 8 iz OpenJDK.
OpenJDK se može lako instalirati, jer je paket dostupan u zadanom YUMspremištu.
sudo yum -y install java-1.8.0-openjdk-devel
Ako je Java ispravno instalirana, moći ćete provjeriti njezinu verziju.
java -version
Dobit ćete sličan rezultat sljedećem tekstu.
[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
Prije nego što nastavimo dalje, morat ćemo postaviti varijable okruženja JAVA_HOMEi JRE_HOME. Pronađite apsolutni put Java izvršne datoteke u vašem sustavu.
readlink -f $(which java)
Sljedeći tekst bit će ispisan na vaš terminal.
[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre/bin/java
Sada postavite varijable JAVA_HOMEi JRE_HOMEokoline prema putu Java direktorija.
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre" >> ~/.bash_profile
Napomena: Provjerite koristite li Java stazu dobivenu na vašem sustavu. Put koji se koristi u ovom vodiču može se promijeniti kada se objavi nova verzija Jave 8.
Izvršite bash_profiledatoteku.
source ~/.bash_profile
Sada možete pokrenuti echo $JAVA_HOMEnaredbu kako biste bili sigurni da je varijabla okruženja postavljena.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Instalirajte GoCD
GoCD je napisan u Javi, stoga je Java jedina ovisnost za pokretanje GoCD-a. GoCD se može instalirati uz pomoć YUM. Instalirajte njegovo službeno spremište u sustav.
sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo
Instalirajte GoCD poslužitelj u svoj sustav.
sudo yum install -y go-server
Pokrenite GoCD i omogućite mu da se automatski pokrene prilikom pokretanja.
sudo systemctl start go-server
sudo systemctl enable go-server
Prije nego pristupimo nadzornoj ploči GoCD-a, napravimo novi direktorij za pohranu artefakata. Artefakti se mogu pohraniti na isti disk na kojem su instalirani operativni sustav i aplikacije. Alternativno, možete koristiti namjenski disk ili blok za pohranu za pohranu artefakata.
Ako želite koristiti isti disk za pohranu artefakata, samo stvorite novi direktorij i dajte vlasništvo GoCD korisniku.
sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts
Softver GoCD preporučuje korištenje dodatne particije ili pogona za pohranu artefakata. U kontinuiranoj platformi integracije i isporuke artefakti se generiraju vrlo često. Prostor na disku se vremenom smanjuje kada se novi artefakti kontinuirano generiraju. U nekoj fazi, vašem sustavu će ponestati slobodnog prostora na disku i usluge koje rade na vašem sustavu neće uspjeti. Da biste prevladali ovaj problem, možete priključiti novi pogon za pohranu bloka Vultr za pohranu artefakata. Ako i dalje želite ići s pohranom artefakata na isti disk, preskočite na odjeljak "Postavljanje vatrozida".
Postavite novi blok za pohranu i priključite ga na instancu GoCD poslužitelja. Sada stvorite novu particiju na blok uređaju za pohranu.
sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%
Napravite datotečni sustav na novom disku.
sudo mkfs.ext4 /dev/vdb1
Montirajte blok za pohranu.
sudo mkdir /mnt/artifacts
sudo cp /etc/fstab /etc/fstab.backup
echo "
/dev/vdb1 /mnt/artifacts ext4 defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /mnt/artifacts
Sada pokrenite dfi vidjet ćete novi pogon za pohranu blokova postavljen na /mnt/artifacts.
[user@vultr ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 20616252 6313892 13237464 33% /
...
/dev/vdb1 10188052 36888 9610596 1% /mnt/artifacts
Omogućite vlasništvo nad imenikom GoCD korisniku.
sudo chown -R go:go /mnt/artifacts
Postavite vatrozid
Promijenite konfiguraciju vatrozida kako biste dopustili portove 8153i 8154kroz vatrozid. Port 8153osluškuje nezaštićene veze, a priključak 8154za sigurne veze.
sudo firewall-cmd --zone=public --add-port=8153/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8154/tcp --permanent
sudo firewall-cmd --reload
Sada možete pristupiti GoCD nadzornoj ploči na http://192.168.1.1:8153. Za pristup GoCD nadzornoj ploči putem zaštićene veze, pristupite https://192.168.1.1:8154. Dobit ćete pogrešku koja pokazuje da certifikati nisu valjani. Možete sigurno zanemariti pogrešku jer su certifikati samopotpisani. Iz sigurnosnih razloga, uvijek biste trebali koristiti nadzornu ploču preko zaštićene veze.
Prije nego što postavite novi cjevovod, idite na " Admin >> Server Configuration" s gornje navigacijske trake.
Unesite URL svoje nezaštićene stranice u polje " Site URL", a zaštićenu web-lokaciju u polje " Secure Site URL".

Zatim unesite podatke o svom SMTP poslužitelju za slanje obavijesti e-poštom s GoCD-a.
![Kako instalirati i konfigurirati GoCD na CentOS 7 Kako instalirati i konfigurirati GoCD na CentOS 7]()
Na kraju navedite put do mjesta gdje želite pohraniti artefakte. Ako ste odabrali pohraniti artefakte na isti disk kao i operativni sustav, unesite /opt/artifacts; ako ste odabrali priložiti blok za pohranu, tada možete unijeti /mnt/artifacts.
Također, možete konfigurirati GoCD da automatski izbriše stare artefakte. Konfigurirajte sljedeću opciju prema veličini vašeg diska. Međutim, opcija automatskog brisanja ne preuzima sigurnosnu kopiju vaših starih artefakata. Da biste ručno napravili sigurnosnu kopiju i zatim izbrisali stare artefakte, onemogućite automatsko brisanje odabirom opcije " Never" za opciju " Auto delete old artifacts".
![Kako instalirati i konfigurirati GoCD na CentOS 7 Kako instalirati i konfigurirati GoCD na CentOS 7]()
Morat ćete ponovno pokrenuti GoCD poslužitelj kako bi se primijenile nove promjene.
sudo systemctl restart go-server
Postavite autentifikaciju
Prema zadanim postavkama, GoCD nadzorna ploča nije konfigurirana za korištenje bilo koje vrste provjere autentičnosti, ali podržava provjeru autentičnosti pomoću datoteke lozinke i LDAP-a. U ovom vodiču ćemo postaviti autentifikaciju temeljenu na lozinki.
Napomena : Postavljanje provjere autentičnosti je izborni korak, ali se toplo preporučuje za javne poslužitelje, kao što je Vultr.
Instalirajte Apache alate tako da možemo koristiti htpasswdnaredbu za stvaranje šifrirane datoteke lozinke.
sudo yum -y install httpd-tools
Stvorite datoteku lozinke s htpasswdnaredbom koristeći Bcrypt enkripciju.
sudo htpasswd -B -c /etc/go/passwd_auth goadmin
Unesite lozinku za korisnika dvaput. Vidjet ćete sljedeći izlaz.
[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin
Možete dodati koliko god korisnika želite koristeći istu naredbu iznad, ali uklonite -copciju. -cOpcija će zamijeniti postojeću datoteku, zamjenjujući stare korisnicima novog korisnika.
sudo htpasswd -B /etc/go/passwd_auth gouser1
Budući da smo kreirali datoteku lozinke, ponovno pristupite GoCD nadzornoj ploči. Idite na " Admin >> Security >> Authorization Configurations" s gornje navigacijske trake. Kliknite na Addgumb i unesite ID. Odaberite " Password File Authentication Plugin for GoCD" za ID dodatka i usmjerite put do datoteke lozinke. Sada kliknite na Check Connectiongumb " " da biste potvrdili da GoCD može koristiti datoteku lozinke za provjeru autentičnosti.
![Kako instalirati i konfigurirati GoCD na CentOS 7 Kako instalirati i konfigurirati GoCD na CentOS 7]()
Konačno, spremite metodu provjere autentičnosti. Ponovno učitajte nadzornu ploču i ona će vas automatski odjaviti. Sada ćete vidjeti zaslon za prijavu. Prijavite se koristeći prethodno stvorene vjerodajnice.
Morat ćete ručno promovirati korisnika administratora, inače će svi korisnici imati administratorske privilegije. Idite na " Admin >> User Summary" s gornje navigacijske trake.
Sada odaberite korisnika administratora kojeg ste stvorili i kliknite na Rolespadajući izbornik " ". Promovirajte korisnika u jedinog administratora odabirom Go System Administratorpotvrdnog okvira " ".
![Kako instalirati i konfigurirati GoCD na CentOS 7 Kako instalirati i konfigurirati GoCD na CentOS 7]()
Da biste dodali korisnike u GoCD kreiran u datoteci lozinke, kliknite na ADDgumb " " i potražite korisnika koji će ih dodati. Korisnici se također automatski dodaju na GoCD nadzornu ploču prilikom prve prijave. Očito, da bi se korisnici mogli prijaviti, moraju biti dodani u datoteku lozinki koju smo kreirali ranije.
Osiguravanje GoCD-a pomoću Let's Encrypt SSL
By default, GoCD listens to ports 8153 and 8154 on secure connections. Though port 8154 provides a secure connection to the application, it also displays browser errors as it uses a self-signed certificate. In this section of the tutorial, we will install and secure Nginx with Let's Encrypt free SSL certificate. The Nginx web server will work as a reverse proxy to forward the incoming requests to GoCD's HTTP endpoint.
Install Nginx.
sudo yum -y install nginx
Start Nginx and enable it to automatically start at boot time.
sudo systemctl start nginx
sudo systemctl enable nginx
Install Certbot, which is the client application for Let's Encrypt CA.
sudo yum -y install certbot
Prije nego što možete zatražiti certifikate, morat ćete dopustiti portove 80i 443, ili standard HTTPi HTTPSusluge, kroz vatrozid. Također, uklonite port 8153, koji sluša nezaštićene veze.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8153/tcp --permanent
sudo firewall-cmd --reload
Napomena : Za dobivanje certifikata od Let's Encrypt CA, domena za koju se certifikati trebaju generirati mora biti usmjerena prema poslužitelju. Ako nije, izvršite potrebne promjene u DNS zapisima domene i pričekajte da se DNS širi prije nego što ponovno uputite zahtjev za certifikatom. Certbot provjerava autoritet domene prije pružanja certifikata.
Generirajte SSL certifikate.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d gocd.example.com
Generirani certifikati vjerojatno će biti pohranjeni u /etc/letsencrypt/live/gocd.example.com/. SSL certifikat će biti pohranjen kao, fullchain.pema privatni ključ će biti pohranjen kao privkey.pem.
Let's Encrypt certifikati istječu za 90 dana, stoga je preporučljivo postaviti automatsku obnovu certifikata pomoću cron poslova.
Otvorite cron datoteku posla.
sudo crontab -e
Dodajte sljedeći redak na kraj datoteke.
30 5 * * * /usr/bin/certbot renew --quiet
Gornji cron posao će se izvoditi svaki dan u 5:30 ujutro. Ako certifikat istekne, automatski će se obnoviti.
Sada promijenite zadanu konfiguracijsku datoteku Nginxa da uklonite default_serverliniju.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Izradite novu konfiguracijsku datoteku za GoCD web sučelje.
sudo nano /etc/nginx/conf.d/gocd.conf
Popunite datoteku.
upstream gocd {
server 127.0.0.1:8153;
}
server {
listen 80 default_server;
server_name gocd.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 default_server;
server_name gocd.example.com;
ssl_certificate /etc/letsencrypt/live/gocd.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/gocd.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/gocd.access.log;
location / {
proxy_pass http://gocd;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
}
location /go {
proxy_pass http://gocd/go;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
proxy_read_timeout 86400;
}
}
Provjerite ima li pogrešaka u novoj konfiguracijskoj datoteci.
sudo nginx -t
Ako vidite sljedeći izlaz, konfiguracija je bez grešaka.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Ako ste primili neku vrstu pogreške, provjerite još jednom put do SSL certifikata. Ponovno pokrenite Nginx web poslužitelj kako biste implementirali promjenu konfiguracije.
sudo systemctl restart nginx
Sada možete pristupiti GoCD nadzornoj ploči na https://gocd.example.com. Prijavite se na svoju nadzornu ploču koristeći administratorske vjerodajnice i idite na " Admin >> Server Configuration" s gornje navigacijske trake.
![Kako instalirati i konfigurirati GoCD na CentOS 7 Kako instalirati i konfigurirati GoCD na CentOS 7]()
Postavite " Site URL" i " Secure Site URL" na https://gocd.example.com. Port i 8154dalje mora biti dostupan putem vatrozida kako bi se udaljeni agenti mogli povezati s poslužiteljem preko porta 8154, u slučaju da se ne mogu povezati putem standardnog HTTPporta.
Instalacija GoCD agenta
U okruženju GoCD kontinuirane integracije, GoCD agenti su radnici koji su odgovorni za izvršenje svih zadataka. Kada se otkrije promjena u izvoru, pokreće se cjevovod i poslovi se dodjeljuju dostupnim radnicima za izvršenje. Agent zatim izvršava zadatak i izvješćuje o konačnom statusu nakon izvršenja.
Za pokretanje cjevovoda mora biti konfiguriran barem jedan agent. Nastavite s instalacijom GoCD agenta na GoCD poslužitelj.
Budući da smo GoCD repozitorij već uvezli na poslužitelj, možemo izravno instalirati Go Agent.
sudo yum install -y go-agent
Sada pokrenite GoCD poslužitelj i omogućite mu automatsko pokretanje prilikom pokretanja.
sudo systemctl start go-agent
sudo systemctl enable go-agent
GoCD agent koji radi na lokalnom hostu automatski je omogućen kada se otkrije.