Forutsetninger
Installer Java
Installer GoCD
Konfigurer blokklagring
Konfigurer GoCD
Sett opp autentisering
Sikring av GoCD med Let's Encrypt SSL
Installerer GoCD Agent
GoCD er et åpen kildekodesystem for kontinuerlig levering og automatisering. Den lar deg modellere komplekse arbeidsflyter ved å bruke dens parallelle og sekvensielle utførelse. Verdistrømkartet lar deg enkelt visualisere en kompleks arbeidsflyt. GoCD lar deg enkelt sammenligne to bygg og distribuere hvilken som helst versjon av applikasjonen du ønsker. GoCD-økosystemet består av GoCD-server og GoCD-agent. GoCD er ansvarlig for å kontrollere alt som å kjøre det nettbaserte brukergrensesnittet og administrere og gi jobber til agenten. Go-agenter er ansvarlige for å kjøre jobbene og distribusjonene.
Forutsetninger
- En Vultr Ubuntu 16.04-serverforekomst med minst 2 GB RAM.
- En sudo-bruker .
- Et domenenavn pekte mot serveren.
For denne opplæringen vil vi bruke 192.168.1.1som den offentlige IP-adressen og gocd.example.com som domenenavnet som pekte mot Vultr-forekomsten. Sørg for å erstatte alle forekomster av eksempeldomenenavnet og IP-adressen med den faktiske.
Oppdater basissystemet ditt ved å bruke veiledningen Hvordan oppdatere Ubuntu 16.04 . Når systemet ditt har blitt oppdatert, fortsett å installere Java.
Installer Java
GoCD krever Java versjon 8 og støtter både Oracle Java og OpenJDK. Legg til Ubuntu-depotet for Oracle Java 8.
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Installer Oracle Java.
sudo apt -y install oracle-java8-installer
Sjekk versjonen.
java -version
Du vil se følgende utgang.
user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
Angi standardbanen for Java ved å installere følgende pakke.
sudo apt -y install oracle-java8-set-default
Du kan bekrefte om JAVA_HOMEer satt ved å kjøre.
echo $JAVA_HOME
Du vil se.
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
Hvis du ikke ser noen utgang i det hele tatt, må du logge ut fra gjeldende skall og logge på igjen.
Installer GoCD
Installer GoCDs offisielle depot i systemet.
echo "deb https://download.gocd.org /" | sudo tee /etc/apt/sources.list.d/gocd.list
curl https://download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
sudo apt update
Installer GoCD-serveren i systemet ditt.
sudo apt install -y go-server
Start GoCD og aktiver den til å starte automatisk ved oppstart.
sudo systemctl start go-server
sudo systemctl enable go-server
Før vi får tilgang til GoCD-dashbordet, la oss lage en ny katalog for å lagre artefaktene. Artefakter kan lagres på samme disk som operativsystemet og applikasjonene er installert på. Alternativt kan du bruke en dedikert disk eller blokklagringsstasjon for å lagre artefaktene.
Hvis du ønsker å bruke den samme disken til å lagre artefaktene, er det bare å opprette en ny katalog og oppgi eierskapet til GoCD-brukeren.
sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts
GoCD-programvaren anbefaler at du bruker en ekstra partisjon eller stasjon for å lagre artefaktene. I en kontinuerlig integrasjons- og leveringsplattform genereres artefakter veldig ofte. Diskplassen reduseres over tid når nye artefakter genereres kontinuerlig. På et tidspunkt vil systemet gå tom for ledig diskplass og tjenestene som kjører på systemet vil mislykkes. For å overvinne dette problemet kan du legge ved en ny Vultr-blokklagringsstasjon for å lagre artefaktene. Hvis du fortsatt ønsker å lagre gjenstander på samme stasjon, hopper du til delen "Konfigurer GoCD".
Distribuer en ny blokklagringsstasjon og koble den til GoCD-serverforekomsten. Opprett nå en ny partisjon på blokklagringsenheten.
sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%
Opprett filsystemet på den nye disken.
sudo mkfs.ext4 /dev/vdb1
Monter blokklagringsstasjonen.
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
Kjør nå, dfog du vil se den nye blokklagringsstasjonen montert på /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
Gi eierskap til katalogen til GoCD-brukeren.
sudo chown -R go:go /mnt/artifacts
Nå kan du få tilgang til GoCD-dashbordet på http://192.168.1.1:8153. For å få tilgang til GoCD-dashbordet på en sikker tilkobling, gå til https://192.168.1.1:8154. Du vil få opp en feil som viser at sertifikatene ikke er gyldige. Du kan trygt ignorere feilen ettersom sertifikatene er selvsignerte. Av sikkerhetshensyn bør du alltid bruke dashbordet over en sikker tilkobling.
Før du setter opp en ny pipeline, naviger til " Admin >> Server Configuration" fra den øverste navigasjonslinjen.
Skriv inn URL-en til det usikrede nettstedet i " Site URL"-feltet og det sikrede nettstedet i " Secure Site URL"-feltet.

Deretter oppgir du SMTP-serverdetaljer for å sende e-postvarsler fra GoCD.
![Hvordan installere og konfigurere GoCD på Ubuntu 16.04 Hvordan installere og konfigurere GoCD på Ubuntu 16.04]()
Til slutt, oppgi banen til stedet der du ønsker å lagre gjenstandene. Hvis du har valgt å lagre artefaktene på samme disk som operativsystemet, skriv inn /opt/artifacts; hvis du har valgt å legge til en blokklagringsstasjon, kan du angi /mnt/artifacts.
Du kan også konfigurere GoCD til å automatisk slette de gamle artefaktene. Konfigurer det neste alternativet i henhold til diskstørrelsen din. Alternativet for automatisk sletting tar imidlertid ikke en sikkerhetskopi av dine gamle artefakter. For å ta en sikkerhetskopi manuelt og deretter slette de gamle artefaktene, deaktiver automatisk sletting ved å velge alternativet " Never" for alternativet " Auto delete old artifacts".
![Hvordan installere og konfigurere GoCD på Ubuntu 16.04 Hvordan installere og konfigurere GoCD på Ubuntu 16.04]()
Du må starte GoCD-serveren på nytt slik at de nye endringene blir tatt i bruk.
sudo systemctl restart go-server
Sett opp autentisering
Som standard er ikke GoCD-dashbordet konfigurert til å bruke noen form for autentisering, men det støtter autentisering ved hjelp av en passordfil og LDAP. I denne opplæringen vil vi sette opp passordbasert autentisering.
Merk : Konfigurering av autentisering er et valgfritt trinn, men det anbefales sterkt for offentlige servere, som Vultr.
Installer Apache-verktøy slik at vi kan bruke htpasswd kommandoen til å lage en kryptert passordfil.
sudo apt -y install apache2-utils
Lag en passordfil med htpasswd kommandoen ved å bruke Bcrypt-kryptering.
sudo htpasswd -B -c /etc/go/passwd_auth goadmin
Oppgi passordet til brukeren to ganger. Du vil se følgende utgang.
[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin
Du kan legge til så mange brukere du vil ved å bruke samme kommando ovenfor, men fjern -c alternativet. Det -c alternativet vil erstatte den eksisterende filen, erstatte gamle brukere med den nye brukeren.
sudo htpasswd -B /etc/go/passwd_auth gouser1
Nå som vi har opprettet passordfilen, får du tilgang til GoCD-dashbordet igjen. Naviger til " Admin >> Security >> Authorization Configurations" fra den øverste navigasjonslinjen. Klikk på Add knappen og oppgi eventuell ID. Velg " Password File Authentication Plugin for GoCD" for plugin-ID og diriger banen til passordfilen. Klikk nå på " Check Connection"-knappen for å bekrefte at GoCD kan bruke passordfilen for autentisering.
![Hvordan installere og konfigurere GoCD på Ubuntu 16.04 Hvordan installere og konfigurere GoCD på Ubuntu 16.04]()
Til slutt lagrer du autentiseringsmetoden. Last inn dashbordet på nytt, og det vil automatisk logge deg ut. Du vil se en påloggingsskjerm nå. Logg på med legitimasjonen opprettet tidligere.
Du må promotere administratorbrukeren manuelt, ellers vil alle brukerne ha administratorrettigheter. Naviger til " Admin >> User Summary" fra den øverste navigasjonslinjen.
Now select the admin user you've created and click on the "Roles" drop-down. Promote the user to the only administrator by selecting the "Go System Administrator" checkbox.
![Hvordan installere og konfigurere GoCD på Ubuntu 16.04 Hvordan installere og konfigurere GoCD på Ubuntu 16.04]()
To add the users in GoCD created in the password file, click on the "ADD" button and search for the user to add them. Users are also automatically added to the GoCD dashboard on their first login. Obviously, for users to log in, they must be added to the password file we have created earlier.
Securing GoCD with 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 a 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 apt -y install nginx
Start Nginx and enable it to automatically start at boot time.
sudo systemctl start nginx
sudo systemctl enable nginx
Add the Certbot repository.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Install Certbot, which is the client application for Let's Encrypt CA.
sudo apt -y install certbot
Merk : For å få sertifikater fra Let's Encrypt CA, må domenet som sertifikatene skal genereres for, peke mot serveren. Hvis ikke, gjør de nødvendige endringene i DNS-postene til domenet og vent til DNS-en forplanter seg før du foretar sertifikatforespørselen igjen. Certbot sjekker domeneautoriteten før sertifikatene leveres.
Generer SSL-sertifikatene.
sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com
De genererte sertifikatene blir sannsynligvis lagret i /etc/letsencrypt/live/gocd.example.com/. SSL-sertifikatet vil bli lagret som fullchain.pem og privat nøkkel vil bli lagret som privkey.pem.
La oss kryptere sertifikater utløper om 90 dager, så det anbefales å sette opp automatisk fornyelse av sertifikatene ved hjelp av cron-jobber.
Åpne cron-jobbfilen.
sudo crontab -e
Legg til følgende linje på slutten av filen.
30 5 * * * /usr/bin/certbot renew --quiet
Cron-jobben ovenfor kjøres hver dag klokken 05.30. Hvis sertifikatet skal utløpe, vil det automatisk fornyes.
Opprett en ny konfigurasjonsfil for GoCD-nettgrensesnittet.
sudo nano /etc/nginx/sites-available/gocd
Fyll ut filen.
upstream gocd {
server 127.0.0.1:8153;
}
server {
listen 80;
server_name gocd.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
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;
}
}
Aktiver konfigurasjonsfilen.
sudo ln -s /etc/nginx/sites-available/gocd /etc/nginx/sites-enabled/gocd
Start Nginx-nettserveren på nytt for å implementere endringen i konfigurasjonen.
sudo systemctl restart nginx
Nå kan du få tilgang til GoCD-dashbordet på https://gocd.example.com. Logg inn på dashbordet med administratorlegitimasjonen og naviger til " Admin >> Server Configuration" fra den øverste navigasjonslinjen.
![Hvordan installere og konfigurere GoCD på Ubuntu 16.04 Hvordan installere og konfigurere GoCD på Ubuntu 16.04]()
Sett " Site URL" og " Secure Site URL" til https://gocd.example.com.
Installerer GoCD Agent
I GoCD kontinuerlig integrasjonsmiljø er GoCD-agenter arbeiderne som er ansvarlige for utførelsen av alle oppgavene. Når en endring i kilden oppdages, utløses rørledningen og jobbene tildeles tilgjengelige arbeidere for utførelse. Agenten utfører deretter oppgaven og rapporterer den endelige statusen etter utførelse.
For å kjøre en pipeline må minst én agent være konfigurert. Fortsett å installere GoCD-agenten på GoCD-serveren.
Siden vi allerede har importert GoCD-lageret til serveren, kan vi installere Go Agent direkte.
sudo apt install -y go-agent
Start nå GoCD-serveren og aktiver den til å starte automatisk ved oppstart.
sudo systemctl start go-agent
sudo systemctl enable go-agent
GoCD-agenten som kjører på den lokale verten blir automatisk aktivert når den oppdages.