GoCD installeren en configureren op Ubuntu 16.04

GoCD is een open source systeem voor continue levering en automatisering. Hiermee kunt u complexe workflows modelleren met behulp van de parallelle en sequentiële uitvoering. Dankzij de waardestroomkaart kunt u eenvoudig een complexe workflow visualiseren. Met GoCD kun je eenvoudig twee builds vergelijken en elke versie van de gewenste applicatie implementeren. Het GoCD-ecosysteem bestaat uit de GoCD-server en de GoCD-agent. GoCD is verantwoordelijk voor het controleren van alles, zoals het uitvoeren van de webgebaseerde gebruikersinterface en het beheren en aanbieden van taken aan de agent. Go-agenten zijn verantwoordelijk voor het uitvoeren van de taken en implementaties.

Vereisten

  • Een Vultr Ubuntu 16.04-serverinstantie met minimaal 2 GB RAM.
  • Een sudo-gebruiker .
  • Een domeinnaam wees naar de server.

Voor deze tutorial zullen we gebruiken 192.168.1.1als het openbare IP-adres en gocd.example.com als de domeinnaam die naar de Vultr-instantie verwijst. Zorg ervoor dat u alle exemplaren van de voorbeelddomeinnaam en het IP-adres vervangt door de werkelijke.

Update uw basissysteem met behulp van de handleiding Ubuntu 16.04 bijwerken . Zodra uw systeem is bijgewerkt, gaat u verder met de installatie van Java.

Installeer Java

GoCD vereist Java-versie 8 en ondersteunt zowel Oracle Java als OpenJDK. Voeg de Ubuntu-repository voor Oracle Java 8 toe.

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

Installeer Oracle Java.

sudo apt -y install oracle-java8-installer

Controleer de versie.

java -version

Je ziet de volgende output.

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)

Stel het standaardpad voor Java in door het volgende pakket te installeren.

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

U kunt controleren of dit JAVA_HOMEis ingesteld door te draaien.

echo $JAVA_HOME

Je zult zien.

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

Als u helemaal geen uitvoer ziet, moet u zich afmelden bij de huidige shell en weer inloggen.

Installeer GoCD

Installeer de officiële repository van GoCD in het systeem.

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

Installeer de GoCD-server in uw systeem.

sudo apt install -y go-server

Start GoCD en schakel het automatisch in tijdens het opstarten.

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

Voordat we het GoCD-dashboard openen, laten we een nieuwe map maken om de artefacten op te slaan. Artefacten kunnen worden opgeslagen op dezelfde schijf waarop het besturingssysteem en de applicaties zijn geïnstalleerd. Als alternatief kunt u een speciale schijf gebruiken of een opslagschijf blokkeren om de artefacten op te slaan.

Als u dezelfde schijf wilt gebruiken om de artefacten op te slaan, maakt u gewoon een nieuwe map en geeft u het eigendom aan de GoCD-gebruiker.

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

Configureer Block Storage

De GoCD-software raadt aan dat u een extra partitie of schijf gebruikt om de artefacten op te slaan. In een continu integratie- en leveringsplatform worden artefacten heel vaak gegenereerd. De schijfruimte neemt na verloop van tijd af wanneer er continu nieuwe artefacten worden gegenereerd. Op een bepaald moment heeft uw systeem onvoldoende vrije schijfruimte en mislukken de services die op uw systeem worden uitgevoerd. Om dit probleem op te lossen, kunt u een nieuw Vultr-blokopslagstation koppelen om de artefacten op te slaan. Als je nog steeds wilt gaan met de opslag van artefacten op dezelfde schijf, ga dan naar de sectie "GoCD configureren".

Implementeer een nieuw blokopslagstation en koppel het aan uw GoCD-serverinstantie. Maak nu een nieuwe partitie op het blokopslagapparaat.

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

Maak het bestandssysteem op de nieuwe schijf.

sudo mkfs.ext4 /dev/vdb1

Monteer het blokopslagstation.

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

Voer nu uit dfen u zult het nieuwe blokopslagstation gemount zien /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

Geef de GoCD-gebruiker het eigendom van de map.

sudo chown -R go:go /mnt/artifacts

Configureer GoCD

Nu heb je toegang tot het GoCD-dashboard http://192.168.1.1:8153. Toegang tot het GoCD-dashboard via een beveiligde verbinding https://192.168.1.1:8154. U krijgt een foutmelding dat de certificaten niet geldig zijn. U kunt de fout veilig negeren omdat de certificaten zelfondertekend zijn. Om veiligheidsredenen moet u altijd het dashboard gebruiken via een beveiligde verbinding.

Voordat u een nieuwe pijplijn opzet, navigeert u naar " Admin >> Server Configuration" in de navigatiebalk bovenaan.

Voer de URL in naar uw onbeveiligde site in het " Site URL" veld en de beveiligde site in het " Secure Site URL" veld.

GoCD installeren en configureren op Ubuntu 16.04

Geef vervolgens uw SMTP-servergegevens op om e-mailmeldingen van GoCD te verzenden.

GoCD installeren en configureren op Ubuntu 16.04

Geef ten slotte het pad naar de locatie waar u de artefacten wilt opslaan. Als u ervoor hebt gekozen om de artefacten op dezelfde schijf op te slaan als het besturingssysteem, typt u /opt/artifacts; als je ervoor hebt gekozen om een ​​blokopslagstation aan te sluiten, kun je binnenkomen /mnt/artifacts.

U kunt GoCD ook configureren om de oude artefacten automatisch te verwijderen. Configureer de volgende optie op basis van uw schijfgrootte. De optie voor automatisch verwijderen maakt echter geen back-up van uw oude artefacten. Als u handmatig een back-up wilt maken en vervolgens de oude artefacten wilt verwijderen, schakelt u automatisch verwijderen uit door de Neveroptie " " te kiezen voor de Auto delete old artifactsoptie " ".

GoCD installeren en configureren op Ubuntu 16.04

U moet de GoCD-server opnieuw opstarten zodat de nieuwe wijzigingen worden toegepast.

sudo systemctl restart go-server

Verificatie instellen

Standaard is het GoCD-dashboard niet geconfigureerd om enige vorm van authenticatie te gebruiken, maar het ondersteunt authenticatie met een wachtwoordbestand en LDAP. In deze tutorial zullen we wachtwoordgebaseerde authenticatie instellen.

Opmerking : het instellen van verificatie is een optionele stap, maar wordt sterk aanbevolen voor openbare servers, zoals Vultr.

Installeer Apache-tools zodat we de htpasswd opdracht kunnen gebruiken om een ​​gecodeerd wachtwoordbestand te maken.

sudo apt -y install apache2-utils

Maak een wachtwoordbestand met de htpasswd opdracht met behulp van Bcrypt-codering.

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

Geef het wachtwoord tweemaal op voor de gebruiker. Je ziet de volgende output.

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

U kunt zoveel gebruikers toevoegen als u wilt met dezelfde opdracht hierboven, maar verwijder de -c optie. De -c optie vervangt het bestaande bestand en vervangt oude gebruikers door de nieuwe gebruiker.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Nu we het wachtwoordbestand hebben gemaakt, gaat u opnieuw naar het GoCD-dashboard. Navigeer naar " Admin >> Security >> Authorization Configurations" in de navigatiebalk bovenaan. Klik op de Add knop en geef een willekeurige ID op. Kies " Password File Authentication Plugin for GoCD" voor de plug-in-ID en leid het pad naar het wachtwoordbestand. Klik nu op de Check Connectionknop " " om te controleren of GoCD het wachtwoordbestand kan gebruiken voor authenticatie.

GoCD installeren en configureren op Ubuntu 16.04

Sla ten slotte de verificatiemethode op. Laad het dashboard opnieuw en het logt je automatisch uit. U ziet nu een inlogscherm. Log in met de eerder aangemaakte aanmeldgegevens.

U moet de beheerdersgebruiker handmatig promoten, anders hebben alle gebruikers beheerdersrechten. Navigeer naar " Admin >> User Summary" in de navigatiebalk bovenaan.

Selecteer nu de admin-gebruiker die je hebt aangemaakt en klik op de " Roles" drop-down. Promoot de gebruiker bij de enige beheerder door het selectievakje " Go System Administrator" in te schakelen.

GoCD installeren en configureren op Ubuntu 16.04

Om de gebruikers in GoCD toe te voegen die in het wachtwoordbestand zijn aangemaakt, klikt u op de ADDknop " " en zoekt u naar de gebruiker om ze toe te voegen. Gebruikers worden ook automatisch toegevoegd aan het GoCD-dashboard bij hun eerste login. Het is duidelijk dat gebruikers om in te loggen moeten worden toegevoegd aan het wachtwoordbestand dat we eerder hebben gemaakt.

GoCD beveiligen met Let's Encrypt SSL

Standaard luistert GoCD naar poorten 8153 en 8154 op beveiligde verbindingen. Hoewel poort 8154 een veilige verbinding met de applicatie biedt, worden ook browserfouten weergegeven omdat het een zelfondertekend certificaat gebruikt. In dit gedeelte van de tutorial zullen we Nginx installeren en beveiligen met een Let's Encrypt gratis SSL-certificaat. De Nginx-webserver werkt als een reverse proxy om de inkomende verzoeken door te sturen naar het GoCD- HTTP eindpunt.

Installeer Nginx.

sudo apt -y install nginx

Start Nginx en schakel het automatisch in tijdens het opstarten.

sudo systemctl start nginx
sudo systemctl enable nginx

Voeg de Certbot-repository toe.

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

Installeer Certbot, de clienttoepassing voor Let's Encrypt CA.

sudo apt -y install certbot

Opmerking : om certificaten van Let's Encrypt CA te verkrijgen, moet het domein waarvoor de certificaten moeten worden gegenereerd, naar de server worden gericht. Zo niet, breng dan de nodige wijzigingen aan in de DNS-records van het domein en wacht tot de DNS is gepropageerd voordat u opnieuw een certificaataanvraag indient. Certbot controleert de domeinautoriteit voordat de certificaten worden verstrekt.

Genereer de SSL-certificaten.

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

De gegenereerde certificaten worden waarschijnlijk opgeslagen in /etc/letsencrypt/live/gocd.example.com/. Het SSL-certificaat wordt opgeslagen als fullchain.pem en de privésleutel wordt opgeslagen als privkey.pem.

Let's Encrypt-certificaten verlopen over 90 dagen, dus het wordt aanbevolen om automatische verlenging van de certificaten in te stellen met cron-taken.

Open het cron-taakbestand.

sudo crontab -e

Voeg de volgende regel toe aan het einde van het bestand.

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

De bovenstaande cron-taak wordt elke dag om 05.30 uur uitgevoerd. Als het certificaat vervalt, wordt het automatisch verlengd.

Maak een nieuw configuratiebestand voor de GoCD-webinterface.

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

Vul het bestand in.

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

Activeer het configuratiebestand.

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

Start de Nginx-webserver opnieuw op om de configuratiewijziging door te voeren.

sudo systemctl restart nginx

Nu hebt u toegang tot het GoCD-dashboard op https://gocd.example.com. Log in op uw dashboard met de beheerdersreferenties en navigeer naar " Admin >> Server Configuration" vanuit de navigatiebalk bovenaan.

GoCD installeren en configureren op Ubuntu 16.04

Zet de " Site URL" en " Secure Site URL" op https://gocd.example.com.

GoCD Agent installeren

In de continue integratieomgeving van GoCD zijn GoCD-agenten de werknemers die verantwoordelijk zijn voor de uitvoering van alle taken. Wanneer een wijziging in de bron wordt gedetecteerd, wordt de pijplijn geactiveerd en worden de taken toegewezen aan beschikbare werknemers voor uitvoering. De agent voert vervolgens de taak uit en rapporteert de uiteindelijke status na uitvoering.

Om een ​​pijplijn uit te voeren, moet er minimaal één agent zijn geconfigureerd. Ga verder met het installeren van de GoCD-agent op de GoCD-server.

Omdat we de GoCD-repository al op de server hebben geïmporteerd, kunnen we Go Agent direct installeren.

sudo apt install -y go-agent

Start nu de GoCD-server en schakel deze automatisch in tijdens het opstarten.

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

De GoCD-agent die op de lokale host wordt uitgevoerd, wordt automatisch ingeschakeld wanneer deze wordt gedetecteerd.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.