Ako nainštalovať a nakonfigurovať GoCD na Ubuntu 16.04

GoCD je open source systém nepretržitého doručovania a automatizácie. Umožňuje vám modelovať zložité pracovné postupy pomocou jeho paralelného a sekvenčného vykonávania. Jeho mapa toku hodnôt vám umožňuje jednoducho vizualizovať zložitý pracovný postup. GoCD vám umožňuje jednoducho porovnať dve zostavy a nasadiť ľubovoľnú verziu aplikácie, ktorú chcete. Ekosystém GoCD pozostáva zo servera GoCD a agenta GoCD. GoCD je zodpovedný za kontrolu všetkého, ako je spustenie webového používateľského rozhrania a správa a poskytovanie úloh agentovi. Agenti Go sú zodpovední za spustenie úloh a nasadenia.

Predpoklady

  • Inštancia servera Vultr Ubuntu 16.04 s najmenej 2 GB RAM.
  • Sudo používateľ .
  • Názov domény nasmerovaný na server.

V tomto návode budeme používať 192.168.1.1ako verejnú IP adresu a gocd.example.com ako názov domény smerujúci k inštancii Vultr. Uistite sa, že ste nahradili všetky výskyty vzorového názvu domény a adresy IP skutočnými.

Aktualizujte svoj základný systém pomocou príručky Ako aktualizovať Ubuntu 16.04 . Po aktualizácii systému pokračujte v inštalácii Java.

Nainštalujte Java

GoCD vyžaduje Java verziu 8 a podporuje Oracle Java aj OpenJDK. Pridajte úložisko Ubuntu pre Oracle Java 8.

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

Nainštalujte Oracle Java.

sudo apt -y install oracle-java8-installer

Skontrolujte verziu.

java -version

Uvidíte nasledujúci výstup.

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)

Nastavte predvolenú cestu pre Java inštaláciou nasledujúceho balíka.

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

Či JAVA_HOMEje nastavené, môžete overiť spustením.

echo $JAVA_HOME

Uvidíš.

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

Ak nevidíte žiadny výstup, budete sa musieť odhlásiť z aktuálneho shellu a znova sa prihlásiť.

Nainštalujte GoCD

Nainštalujte do systému oficiálny repozitár GoCD.

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

Nainštalujte server GoCD do vášho systému.

sudo apt install -y go-server

Spustite GoCD a povoľte jej automatické spustenie pri štarte.

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

Predtým, ako pristúpime k ovládaciemu panelu GoCD, vytvorme nový adresár na uloženie artefaktov. Artefakty môžu byť uložené na rovnakom disku, na ktorom je nainštalovaný operačný systém a aplikácie. Prípadne môžete na uloženie artefaktov použiť vyhradený disk alebo blokovú úložnú jednotku.

Ak chcete použiť rovnaký disk na ukladanie artefaktov, vytvorte nový adresár a poskytnite vlastníctvo používateľovi GoCD.

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

Konfigurácia blokového úložiska

Softvér GoCD odporúča, aby ste na ukladanie artefaktov použili ďalší oddiel alebo jednotku. V kontinuálnej integračnej a doručovacej platforme sa artefakty generujú veľmi často. Miesto na disku sa časom zmenšuje, keď sa neustále generujú nové artefakty. V určitom štádiu sa vášmu systému minie voľné miesto na disku a služby spustené vo vašom systéme zlyhajú. Na prekonanie tohto problému môžete pripojiť novú blokovú úložnú jednotku Vultr na uloženie artefaktov. Ak stále chcete ukladať artefakty na rovnakú jednotku, preskočte na časť „Konfigurácia GoCD“.

Nasaďte novú blokovú úložnú jednotku a pripojte ju k inštancii servera GoCD. Teraz vytvorte nový oddiel na blokovom úložnom zariadení.

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

Vytvorte súborový systém na novom disku.

sudo mkfs.ext4 /dev/vdb1

Namontujte blokovú ukladaciu jednotku.

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

Teraz spustite dfa uvidíte nový blokový ukladací disk namontovaný 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

Poskytnite používateľovi GoCD vlastníctvo adresára.

sudo chown -R go:go /mnt/artifacts

Nakonfigurujte GoCD

Teraz máte prístup k ovládaciemu panelu GoCD na http://192.168.1.1:8153. Ak chcete získať prístup k ovládaciemu panelu GoCD cez zabezpečené pripojenie, prejdite na https://192.168.1.1:8154. Zobrazí sa chybové hlásenie, že certifikáty nie sú platné. Chybu môžete pokojne ignorovať, pretože certifikáty sú podpísané vlastným podpisom. Z bezpečnostných dôvodov by ste mali vždy používať palubnú dosku cez zabezpečené pripojenie.

Pred nastavením nového kanála prejdite na „ Admin >> Server Configuration“ z horného navigačného panela.

Zadajte adresu URL vašej nezabezpečenej stránky do poľa „ Site URL“ a zabezpečenej stránky do poľa „ Secure Site URL“.

Ako nainštalovať a nakonfigurovať GoCD na Ubuntu 16.04

Ďalej zadajte podrobnosti o svojom serveri SMTP na odosielanie e-mailových upozornení z GoCD.

Ako nainštalovať a nakonfigurovať GoCD na Ubuntu 16.04

Nakoniec zadajte cestu k miestu, kde chcete artefakty uložiť. Ak ste sa rozhodli ukladať artefakty na rovnaký disk ako operačný systém, zadajte /opt/artifacts; ak ste sa rozhodli pripojiť blokovú úložnú jednotku, môžete zadať /mnt/artifacts.

Môžete tiež nakonfigurovať GoCD na automatické odstraňovanie starých artefaktov. Nakonfigurujte ďalšiu možnosť podľa veľkosti disku. Možnosť automatického odstránenia však nevytvára zálohu vašich starých artefaktov. Ak chcete manuálne vytvoriť zálohu a potom odstrániť staré artefakty, zakážte automatické mazanie výberom možnosti „ Never“ pre možnosť „ Auto delete old artifacts“.

Ako nainštalovať a nakonfigurovať GoCD na Ubuntu 16.04

Budete musieť reštartovať server GoCD, aby sa nové zmeny uplatnili.

sudo systemctl restart go-server

Nastavenie overenia

By default, the GoCD dashboard is not configured to use any kind of authentication, but it supports authentication using a password file and LDAP. In this tutorial, we will set up password-based authentication.

Note: Setting up authentication is an optional step, but it is strongly recommended for public facing servers, such as Vultr.

Install Apache tools so that we can use the htpasswd command to create an encrypted password file.

sudo apt -y install apache2-utils

Create a password file with the htpasswd command using Bcrypt encryption.

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

Provide the password for the user twice. You will see the following output.

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

You can add as many users as you want using the same command above, but remove the -c option. The -c option will replace the existing file, replacing old users with the new user.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Now that we have created the password file, access the GoCD dashboard again. Navigate to "Admin >> Security >> Authorization Configurations" from the top navigation bar. Click on the Add button and provide any ID. Choose "Password File Authentication Plugin for GoCD" for the plugin ID and direct the path to the password file. Now click on the "Check Connection" button to verify that GoCD can use the password file for authentication.

Ako nainštalovať a nakonfigurovať GoCD na Ubuntu 16.04

Finally, save the authentication method. Reload the dashboard and it will automatically log you out. You will see a login screen now. Log in using the credentials created earlier.

You will need to promote the administrator user manually, otherwise, all the users will have administrator privileges. Navigate to "Admin >> User Summary" from the top navigation bar.

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.

Ako nainštalovať a nakonfigurovať GoCD na 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

Note: To obtain certificates from Let's Encrypt CA, the domain for which the certificates are to be generated must be pointed towards the server. If not, make the necessary changes to the DNS records of the domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.

Generate the SSL certificates.

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

The generated certificates are likely to be stored in /etc/letsencrypt/live/gocd.example.com/. The SSL certificate will be stored as fullchain.pem and private key will be stored as privkey.pem.

Let's Encrypt certificates expire in 90 days, so it is recommended to set up auto-renewal of the certificates using cron jobs.

Open the cron job file.

sudo crontab -e

Add the following line to the end of the file.

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

Vyššie uvedená úloha cron sa spustí každý deň o 5:30. Ak platnosť certifikátu vyprší, automaticky sa obnoví.

Vytvorte nový konfiguračný súbor pre webové rozhranie GoCD.

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

Vyplňte súbor.

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

Aktivujte konfiguračný súbor.

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

Reštartujte webový server Nginx, aby ste implementovali zmenu v konfigurácii.

sudo systemctl restart nginx

Teraz máte prístup k ovládaciemu panelu GoCD na adrese https://gocd.example.com. Prihláste sa do svojho informačného panela pomocou poverení správcu a prejdite na „ Admin >> Server Configuration“ z horného navigačného panela.

Ako nainštalovať a nakonfigurovať GoCD na Ubuntu 16.04

Nastavte " Site URL" a " Secure Site URL" na https://gocd.example.com.

Inštalácia agenta GoCD

V prostredí nepretržitej integrácie GoCD sú agenti GoCD pracovníci, ktorí sú zodpovední za vykonávanie všetkých úloh. Keď sa zistí zmena zdroja, spustí sa kanál a úlohy sa priradia dostupným pracovníkom na vykonanie. Agent potom vykoná úlohu a po vykonaní oznámi konečný stav.

Ak chcete spustiť kanál, musí byť nakonfigurovaný aspoň jeden agent. Pokračujte v inštalácii agenta GoCD na server GoCD.

Keďže sme už na server naimportovali úložisko GoCD, môžeme priamo nainštalovať Go Agenta.

sudo apt install -y go-agent

Teraz spustite server GoCD a povoľte jeho automatické spustenie pri štarte.

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

Agent GoCD bežiaci na lokálnom hostiteľovi sa po zistení automaticky povolí.


Leave a Comment

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac