Cum se instalează și se configurează GoCD pe Ubuntu 16.04

GoCD este un sistem de livrare și automatizare continuă a surselor deschise. Vă permite să modelați fluxuri de lucru complexe folosind execuția sa paralelă și secvențială. Harta fluxului de valori vă permite să vizualizați cu ușurință un flux de lucru complex. GoCD vă permite să comparați cu ușurință două versiuni și să implementați orice versiune a aplicației dorite. Ecosistemul GoCD este format din server GoCD și agent GoCD. GoCD este responsabil pentru controlul a orice, cum ar fi rularea interfeței de utilizator bazate pe web și gestionarea și furnizarea de locuri de muncă agentului. Agenții Go sunt responsabili de executarea locurilor de muncă și a implementărilor.

Cerințe preliminare

  • O instanță a serverului Vultr Ubuntu 16.04 cu cel puțin 2 GB RAM.
  • Un utilizator sudo .
  • Un nume de domeniu îndreptat către server.

Pentru acest tutorial, vom folosi 192.168.1.1ca adresă IP publică și gocd.example.com ca nume de domeniu indicat spre instanța Vultr. Vă rugăm să vă asigurați că înlocuiți toate aparițiile numelui de domeniu și adresa IP de exemplu cu una reală.

Actualizați-vă sistemul de bază utilizând ghidul Cum să actualizați Ubuntu 16.04 . După ce sistemul dvs. a fost actualizat, continuați să instalați Java.

Instalați Java

GoCD necesită Java versiunea 8 și acceptă atât Oracle Java cât și OpenJDK. Adăugați depozitul Ubuntu pentru Oracle Java 8.

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

Instalați Java Oracle.

sudo apt -y install oracle-java8-installer

Verificați versiunea.

java -version

Veți vedea următoarea ieșire.

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)

Setați calea implicită pentru Java instalând următorul pachet.

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

Puteți verifica dacă JAVA_HOMEeste setat rulând.

echo $JAVA_HOME

Vei vedea.

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

Dacă nu vedeți deloc ieșire, va trebui să vă deconectați de pe shell-ul curent și să vă autentificați.

Instalați GoCD

Instalați depozitul oficial al GoCD în sistem.

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

Instalați serverul GoCD în sistemul dvs.

sudo apt install -y go-server

Porniți GoCD și permiteți-l să pornească automat la momentul de pornire.

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

Înainte de a accesa tabloul de bord GoCD, să creăm un nou director care să stocheze artefactele. Artifactele pot fi stocate pe același disc în care sunt instalate sistemul de operare și aplicațiile. În mod alternativ, puteți utiliza un disc dedicat sau o unitate de stocare blocată pentru a stoca artefactele.

Dacă doriți să utilizați același disc pentru a stoca artefactele, trebuie doar să creați un nou director și să oferiți proprietatea utilizatorului GoCD.

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

Configurați stocarea blocurilor

Software-ul GoCD recomandă utilizarea unei partiții sau a unei unități suplimentare pentru a stoca artefactele. Într-o platformă de integrare și livrare continuă, artefacte sunt generate foarte des. Spațiul pe disc scade în timp, atunci când se generează continuu noi artefacte. La un moment dat, sistemul dvs. va rămâne fără spațiu pe disc liber, iar serviciile care rulează pe sistemul dvs. vor eșua. Pentru a depăși această problemă, puteți atașa o nouă unitate de stocare bloc Vultr pentru a stoca artefactele. Dacă mai doriți să mergeți cu stocarea artefactelor pe aceeași unitate, treceți la secțiunea „Configurați GoCD”.

Implementați o nouă unitate de stocare bloc și atașați-o la instanța serverului dvs. GoCD. Acum creați o nouă partiție pe dispozitivul de stocare bloc.

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

Creați sistemul de fișiere pe noul disc.

sudo mkfs.ext4 /dev/vdb1

Montați unitatea de stocare bloc.

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

Acum, executați dfși veți vedea noua unitate de stocare bloc blocată /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

Oferiți proprietatea directoarei utilizatorului GoCD.

sudo chown -R go:go /mnt/artifacts

Configurați GoCD

Acum puteți accesa tabloul de bord GoCD pe http://192.168.1.1:8153. Pentru a accesa tabloul de bord GoCD pe o conexiune securizată, accesați https://192.168.1.1:8154. Veți primi o eroare care arată că certificatele nu sunt valide. Puteți ignora în siguranță eroarea, deoarece certificatele sunt autofirmate. În scopuri de securitate, ar trebui să utilizați întotdeauna tabloul de bord printr-o conexiune securizată.

Înainte de a configura o conductă nouă, navigați la " Admin >> Server Configuration" din bara de navigare de sus.

Introduceți adresa URL către site-ul dvs. nesecurizat în câmpul " Site URL" și site-ul securizat în câmpul " Secure Site URL".

Cum se instalează și se configurează GoCD pe Ubuntu 16.04

Apoi, furnizați detaliile serverului dvs. SMTP pentru a trimite notificări prin e-mail de la GoCD.

Cum se instalează și se configurează GoCD pe Ubuntu 16.04

În cele din urmă, furnizați calea către locația în care doriți să depozitați artefactele. Dacă ați ales să stocați artefactele pe același disc cu sistemul de operare, introduceți /opt/artifacts; dacă ați ales să atașați o unitate de stocare bloc, atunci puteți introduce /mnt/artifacts.

De asemenea, puteți configura GoCD pentru a șterge automat elementele vechi. Configurați următoarea opțiune în funcție de dimensiunea discului. Cu toate acestea, opțiunea de ștergere automată nu necesită o copie de rezervă a vechilor artefacte. Pentru a lua manual o copie de rezervă și a șterge vechile artefacte, dezactivați ștergerea automată, alegând opțiunea " Never" pentru opțiunea " Auto delete old artifacts".

Cum se instalează și se configurează GoCD pe Ubuntu 16.04

Va trebui să reporniți serverul GoCD pentru ca noile modificări să fie aplicate.

sudo systemctl restart go-server

Configurare autentificare

În mod implicit, tabloul de bord GoCD nu este configurat pentru a utiliza niciun fel de autentificare, dar acceptă autentificarea folosind un fișier de parolă și LDAP. În acest tutorial, vom configura autentificarea bazată pe parolă.

Notă : Configurarea autentificării este o etapă opțională, dar este recomandată pentru serverele care se confruntă cu public, cum ar fi Vultr.

Instalați instrumentele Apache, astfel încât să putem folosi htpasswd comanda pentru a crea un fișier cu parolă criptată.

sudo apt -y install apache2-utils

Creați un fișier cu parolă cu htpasswd comanda utilizând criptarea Bcrypt.

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

Furnizați parola pentru utilizator de două ori. Veți vedea următoarea ieșire.

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

Puteți adăuga cât mai mulți utilizatori doriți folosind aceeași comandă de mai sus, dar eliminați -c opțiunea. -c Opțiunea va înlocui fișierul existent, înlocuind utilizatorii vechi cu noul utilizator.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Acum că am creat fișierul cu parolă, accesați din nou tabloul de bord GoCD. Navigați la " Admin >> Security >> Authorization Configurations" din bara de navigare de sus. Faceți clic pe Add buton și furnizați orice ID. Alegeți " Password File Authentication Plugin for GoCD" pentru ID-ul pluginului și direcționați calea către fișierul cu parole. Acum faceți clic pe butonul " Check Connection" pentru a verifica dacă GoCD poate utiliza fișierul cu parolă pentru autentificare.

Cum se instalează și se configurează GoCD pe Ubuntu 16.04

În cele din urmă, salvați metoda de autentificare. Reîncărcați tabloul de bord și vă va deconecta automat. Acum veți vedea un ecran de conectare. Conectați-vă folosind datele de autentificare create anterior.

Va trebui să promovați manual utilizatorul de administrator, în caz contrar, toți utilizatorii vor avea privilegii de administrator. Navigați la " Admin >> User Summary" din bara de navigare de sus.

Acum selectați administratorul pe care l-ați creat și faceți clic pe Rolesmeniul derulant " ". Promovați utilizatorul la singurul administrator, selectând Go System Administratorcaseta de selectare.

Cum se instalează și se configurează GoCD pe Ubuntu 16.04

Pentru a adăuga utilizatorii din GoCD creat în fișierul cu parolă, faceți clic pe butonul " ADD" și căutați utilizatorul pentru a le adăuga. Utilizatorii sunt de asemenea adăugați automat la tabloul de bord GoCD la prima autentificare. Evident, pentru ca utilizatorii să se autentifice, trebuie să fie adăugați la fișierul de parole pe care l-am creat anterior.

Securizarea GoCD cu Let's Encrypt SSL

În mod implicit, GoCD ascultă porturile 8153 și 8154 conexiunile sigure. Deși portul 8154 oferă o conexiune sigură la aplicație, acesta afișează, de asemenea, erori ale browserului, deoarece folosește un certificat auto-semnat. În această secțiune a tutorialului, vom instala și securiza Nginx cu un certificat SSL gratuit Let's Encrypt. Serverul web Nginx va funcționa ca un proxy invers pentru a trimite solicitările primite către punctul HTTP final al GoCD .

Instalați Nginx.

sudo apt -y install nginx

Porniți Nginx și permiteți-l să pornească automat la momentul de pornire.

sudo systemctl start nginx
sudo systemctl enable nginx

Adăugați depozitul Certbot.

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

Instalați Certbot, care este aplicația client pentru Let's Encrypt CA.

sudo apt -y install certbot

Notă : Pentru a obține certificate de la Let's Encrypt CA, domeniul pentru care se vor genera certificatele trebuie îndreptat către server. Dacă nu, faceți modificările necesare în înregistrările DNS ale domeniului și așteptați propagarea DNS înainte de a face din nou cererea de certificare. Certbot verifică autoritatea domeniului înainte de furnizarea certificatelor.

Generați certificatele SSL.

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

Este posibil ca certificatele generate să fie stocate în /etc/letsencrypt/live/gocd.example.com/. Certificatul SSL va fi stocate ca fullchain.pem și cheia privată vor fi stocate ca privkey.pem.

Să criptăm certificatele să expire în 90 de zile, de aceea este recomandat să configurați reînnoirea automată a certificatelor folosind joburi cron.

Deschideți fișierul de job cron.

sudo crontab -e

Adăugați următoarea linie la sfârșitul fișierului.

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

Slujba cron de mai sus va rula în fiecare zi la 5:30 AM. Dacă certificatul expiră, acesta se va reînnoi automat.

Creați un nou fișier de configurare pentru interfața web GoCD.

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

Populați fișierul.

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

Activați fișierul de configurare.

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

Reporniți serverul web Nginx pentru a implementa modificarea configurației.

sudo systemctl restart nginx

Acum puteți accesa tabloul de bord GoCD la https://gocd.example.com. Conectați-vă la tabloul de bord utilizând datele de acreditare ale administratorului și navigați până Admin >> Server Configurationla bara de navigare de sus.

Cum se instalează și se configurează GoCD pe Ubuntu 16.04

Setați " Site URL" și " Secure Site URL" la https://gocd.example.com.

Instalarea agentului GoCD

În mediul de integrare continuă GoCD, agenții GoCD sunt lucrătorii care sunt responsabili de executarea tuturor sarcinilor. Când este detectată o modificare a sursei, conducta este declanșată și lucrările sunt atribuite lucrătorilor disponibili pentru execuție. Apoi, agentul execută sarcina și raportează starea finală după executare.

Pentru a rula o conductă, trebuie configurat cel puțin un agent. Continuați să instalați agentul GoCD pe serverul GoCD.

Întrucât am importat deja depozitul GoCD în server, putem instala direct agentul Go.

sudo apt install -y go-agent

Acum, porniți serverul GoCD și permiteți-l să pornească automat la momentul de pornire.

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

Agentul GoCD care rulează pe localhost este activat automat atunci când este detectat.



Leave a Comment

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe