Hur man installerar och konfigurerar GoCD på Ubuntu 16.04

GoCD är ett system för kontinuerlig leverans och automatisering med öppen källkod. Det låter dig modellera komplexa arbetsflöden med hjälp av dess parallella och sekventiella exekvering. Dess värdeströmskarta låter dig enkelt visualisera ett komplext arbetsflöde. GoCD låter dig enkelt jämföra två versioner och distribuera vilken version av programmet du vill ha. GoCD-ekosystemet består av GoCD-server och GoCD-agent. GoCD ansvarar för att kontrollera allt som att köra det webbaserade användargränssnittet och hantera och tillhandahålla jobb till agenten. Go-agenter är ansvariga för att köra jobben och implementeringarna.

Förutsättningar

  • En Vultr Ubuntu 16.04-serverinstans med minst 2 GB RAM.
  • En sudo-användare .
  • Ett domännamn pekade mot servern.

För den här handledningen kommer vi att använda 192.168.1.1som den offentliga IP-adressen och gocd.example.com som domännamnet pekade mot Vultr-instansen. Se till att ersätta alla förekomster av exemplets domännamn och IP-adress med den faktiska.

Uppdatera ditt bassystem med hjälp av guiden Hur man uppdaterar Ubuntu 16.04 . När ditt system har uppdaterats, fortsätt att installera Java.

Installera Java

GoCD kräver Java version 8 och stöder både Oracle Java och OpenJDK. Lägg till Ubuntu-förvaret för Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Installera Oracle Java.

sudo apt -y install oracle-java8-installer

Kontrollera versionen.

java -version

Du kommer att se följande utdata.

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)

Ställ in standardsökvägen för Java genom att installera följande paket.

sudo apt -y install oracle-java8-set-default

Du kan verifiera om JAVA_HOMEär inställt genom att köra.

echo $JAVA_HOME

Du får se.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Om du inte ser någon utdata alls måste du logga ut från det aktuella skalet och logga in igen.

Installera GoCD

Installera GoCDs officiella arkiv 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

Installera GoCD-servern i ditt system.

sudo apt install -y go-server

Starta GoCD och låt den starta automatiskt vid uppstart.

sudo systemctl start go-server
sudo systemctl enable go-server

Innan vi kommer åt GoCD-instrumentpanelen, låt oss skapa en ny katalog för att lagra artefakterna. Artefakter kan lagras på samma disk som operativsystemet och applikationerna är installerade på. Alternativt kan du använda en dedikerad disk eller blocklagringsenhet för att lagra artefakterna.

Om du vill använda samma disk för att lagra artefakterna, skapa bara en ny katalog och ange äganderätten till GoCD-användaren.

sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts

Konfigurera blocklagring

GoCD-programvaran rekommenderar att du använder en extra partition eller enhet för att lagra artefakterna. I en kontinuerlig integrations- och leveransplattform genereras artefakter väldigt ofta. Diskutrymmet minskar med tiden när nya artefakter kontinuerligt genereras. I något skede kommer ditt system att ta slut på ledigt diskutrymme och tjänsterna som körs på ditt system kommer att misslyckas. För att lösa det här problemet kan du bifoga en ny Vultr-blocklagringsenhet för att lagra artefakterna. Om du fortfarande vill fortsätta med lagring av artefakter på samma enhet, hoppa till avsnittet "Konfigurera GoCD".

Distribuera en ny blocklagringsenhet och anslut den till din GoCD-serverinstans. Skapa nu en ny partition på blocklagringsenheten.

sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

Skapa filsystemet på den nya disken.

sudo mkfs.ext4 /dev/vdb1

Montera blocklagringsenheten.

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

Kör nu dfoch du kommer att se den nya blocklagringsenheten monterad 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

Ge GoCD-användaren ägande av katalogen.

sudo chown -R go:go /mnt/artifacts

Konfigurera GoCD

Nu kan du komma åt GoCD-instrumentpanelen på http://192.168.1.1:8153. För att komma åt GoCD-instrumentpanelen på en säker anslutning, gå till https://192.168.1.1:8154. Du kommer att få ett felmeddelande som visar att certifikaten inte är giltiga. Du kan lugnt ignorera felet eftersom certifikaten är självsignerade. Av säkerhetsskäl bör du alltid använda instrumentpanelen över en säker anslutning.

Innan du skapar en ny pipeline, navigera till " Admin >> Server Configuration" från det övre navigeringsfältet.

Ange webbadressen till din osäkra webbplats i Site URLfältet " " och den säkrade webbplatsen i Secure Site URLfältet " ".

Hur man installerar och konfigurerar GoCD på Ubuntu 16.04

Ange sedan din SMTP-serverinformation för att skicka e-postmeddelanden från GoCD.

Hur man installerar och konfigurerar GoCD på Ubuntu 16.04

Ange slutligen sökvägen till platsen där du vill lagra artefakterna. Om du har valt att lagra artefakterna på samma disk som operativsystemet anger du /opt/artifacts; om du har valt att ansluta en blocklagringsenhet kan du ange /mnt/artifacts.

Du kan också konfigurera GoCD för att automatiskt radera de gamla artefakterna. Konfigurera nästa alternativ enligt din diskstorlek. Alternativet för automatisk radering tar dock inte en säkerhetskopia av dina gamla artefakter. För att manuellt ta en säkerhetskopia och sedan ta bort de gamla artefakterna, inaktivera automatisk radering genom att välja Neveralternativet " Auto delete old artifacts" för alternativet " ".

Hur man installerar och konfigurerar GoCD på Ubuntu 16.04

Du måste starta om GoCD-servern så att de nya ändringarna tillämpas.

sudo systemctl restart go-server

Ställ in autentisering

Som standard är GoCD-instrumentpanelen inte konfigurerad för att använda någon form av autentisering, men den stöder autentisering med hjälp av en lösenordsfil och LDAP. I den här handledningen kommer vi att ställa in lösenordsbaserad autentisering.

Obs : Konfigurera autentisering är ett valfritt steg, men det rekommenderas starkt för offentliga inför servrar, såsom Vultr.

Installera Apache-verktyg så att vi kan använda htpasswd kommandot för att skapa en krypterad lösenordsfil.

sudo apt -y install apache2-utils

Skapa en lösenordsfil med htpasswd kommandot med Bcrypt-kryptering.

sudo htpasswd -B -c /etc/go/passwd_auth goadmin

Ange lösenordet för användaren två gånger. Du kommer att se följande utdata.

[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin

Du kan lägga till så många användare som du vill med samma kommando ovan, men ta bort -c alternativet. Det -c alternativet kommer att ersätta den befintliga filen, som ersätter gamla användare med den nya användaren.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Nu när vi har skapat lösenordsfilen, gå till GoCD-instrumentpanelen igen. Navigera till " Admin >> Security >> Authorization Configurations" från det övre navigeringsfältet. Klicka på Add knappen och ange valfritt ID. Välj " Password File Authentication Plugin for GoCD" för plugin-ID och dirigera sökvägen till lösenordsfilen. Klicka nu på Check Connectionknappen " " för att verifiera att GoCD kan använda lösenordsfilen för autentisering.

Hur man installerar och konfigurerar GoCD på Ubuntu 16.04

Slutligen, spara autentiseringsmetoden. Ladda om instrumentpanelen så loggar den automatiskt ut dig. Du kommer att se en inloggningsskärm nu. Logga in med de inloggningsuppgifter som skapats tidigare.

Du måste marknadsföra administratörsanvändaren manuellt, annars kommer alla användare att ha administratörsbehörighet. Navigera till " Admin >> User Summary" från det övre navigeringsfältet.

Välj nu administratörsanvändaren du har skapat och klicka på Rolesrullgardinsmenyn " ". Befordra användaren till den enda administratören genom att Go System Administratormarkera kryssrutan " ".

Hur man installerar och konfigurerar GoCD på Ubuntu 16.04

För att lägga till användare i GoCD som skapats i lösenordsfilen, klicka på ADDknappen " " och sök efter användaren för att lägga till dem. Användare läggs också automatiskt till i GoCD-instrumentpanelen vid sin första inloggning. För att användare ska kunna logga in måste de naturligtvis läggas till i lösenordsfilen som vi har skapat tidigare.

Säkra GoCD med Let's Encrypt SSL

Som standard lyssnar GoCD på portar 8153 och 8154 på säkra anslutningar. Även om porten 8154 ger en säker anslutning till applikationen, visar den också webbläsarfel eftersom den använder ett självsignerat certifikat. I det här avsnittet av handledningen kommer vi att installera och säkra Nginx med ett Let's Encrypt gratis SSL-certifikat. Nginx-webbservern kommer att fungera som en omvänd proxy för att vidarebefordra inkommande förfrågningar till GoCD:s HTTP slutpunkt.

Installera Nginx.

sudo apt -y install nginx

Starta Nginx och låt den starta automatiskt vid uppstart.

sudo systemctl start nginx
sudo systemctl enable nginx

Lägg till Certbot-förvaret.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Installera Certbot, som är klientapplikationen för Let's Encrypt CA.

sudo apt -y install certbot

Obs : För att erhålla certifikat från Let's Encrypt CA måste domänen som certifikaten ska genereras för peka mot servern. Om inte, gör de nödvändiga ändringarna i domänens DNS-poster och vänta tills DNS:n sprider sig innan du gör certifikatbegäran igen. Certbot kontrollerar domänmyndigheten innan certifikaten tillhandahålls.

Generera SSL-certifikaten.

sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com

De genererade certifikaten kommer sannolikt att lagras i /etc/letsencrypt/live/gocd.example.com/. SSL-certifikatet kommer att lagras som fullchain.pem och privat nyckel kommer att lagras som privkey.pem.

Låt oss kryptera certifikat går ut om 90 dagar, så det rekommenderas att ställa in automatisk förnyelse av certifikaten med hjälp av cron-jobb.

Öppna cron-jobbfilen.

sudo crontab -e

Lägg till följande rad i slutet av filen.

30 5 * * * /usr/bin/certbot renew --quiet

Ovanstående cron-jobb kommer att köras varje dag klockan 5:30. Om certifikatet löper ut förnyas det automatiskt.

Skapa en ny konfigurationsfil för GoCD-webbgränssnittet.

sudo nano /etc/nginx/sites-available/gocd

Fyll i 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;
    }
  }

Aktivera konfigurationsfilen.

sudo ln -s /etc/nginx/sites-available/gocd /etc/nginx/sites-enabled/gocd

Starta om Nginx-webbservern för att implementera ändringen i konfigurationen.

sudo systemctl restart nginx

Nu kan du komma åt GoCD-instrumentpanelen på https://gocd.example.com. Logga in på din instrumentpanel med administratörsuppgifterna och navigera till " Admin >> Server Configuration" från det övre navigeringsfältet.

Hur man installerar och konfigurerar GoCD på Ubuntu 16.04

Ställ in " Site URL" och " Secure Site URL" på https://gocd.example.com.

Installerar GoCD Agent

I GoCDs kontinuerliga integrationsmiljö är GoCD-agenter de arbetare som ansvarar för utförandet av alla uppgifter. När en förändring i källan upptäcks utlöses pipelinen och jobben tilldelas tillgängliga arbetare för utförande. Agenten utför sedan uppgiften och rapporterar slutstatus efter utförandet.

För att köra en pipeline måste minst en agent vara konfigurerad. Fortsätt att installera GoCD-agenten på GoCD-servern.

Eftersom vi redan har importerat GoCD-förrådet till servern kan vi installera Go Agent direkt.

sudo apt install -y go-agent

Starta nu GoCD-servern och låt den starta automatiskt vid uppstart.

sudo systemctl start go-agent
sudo systemctl enable go-agent

GoCD-agenten som körs på den lokala värden aktiveras automatiskt när den upptäcks.


The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer