Hvordan installere og konfigurere GoCD på Ubuntu 16.04

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

Konfigurer blokklagring

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

Konfigurer GoCD

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.

Hvordan installere og konfigurere GoCD på Ubuntu 16.04

Deretter oppgir du SMTP-serverdetaljer for å sende e-postvarsler fra GoCD.

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

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

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

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

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.


Leave a Comment

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer