Cum se instalează și se configurează GoCD pe CentOS 7

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 CentOS 7 cu cel puțin 1 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.comca 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 actualizați CentOS 7 . 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. În acest tutorial, vom instala Java 8 de la OpenJDK.

OpenJDK poate fi instalat cu ușurință, deoarece pachetul este disponibil în YUMdepozitul implicit .

sudo yum -y install java-1.8.0-openjdk-devel

Dacă Java este instalat corect, atunci veți putea verifica versiunea sa.

java -version

Veți obține o ieșire similară cu textul următor.

[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Înainte de a putea merge mai departe, va trebui să stabilim variabilele JAVA_HOMEși JRE_HOMEmediul. Găsiți calea absolută a executabilului Java în sistemul dvs.

readlink -f $(which java)

Următorul text va fi transmis către terminalul dvs.

[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre/bin/java

Acum, setați variabilele JAVA_HOMEși JRE_HOMEmediul în funcție de calea directorului Java.

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre" >> ~/.bash_profile

Notă: Asigurați-vă că utilizați calea Java obținută pe sistemul dvs. Calea folosită în acest tutorial se poate schimba atunci când este lansată o nouă versiune de Java 8.

Executați bash_profilefișierul.

source ~/.bash_profile

Acum puteți rula echo $JAVA_HOMEcomanda pentru a vă asigura că variabila de mediu este setată.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

Instalați GoCD

GoCD este scris în Java, prin urmare Java este singura dependență care rulează GoCD. GoCD poate fi instalat cu ajutorul YUM. Instalați depozitul său oficial în sistem.

sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo

Instalați serverul GoCD în sistemul dvs.

sudo yum 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 suplimentare sau a unei unități 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 „Firewall de configurare”.

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

Furnizați proprietatea directorului utilizatorului GoCD.

sudo chown -R go:go /mnt/artifacts

Instalare Firewall

Modificați configurația firewallului pentru a permite porturile 8153și 8154prin firewall. Portul 8153ascultă conexiunile nesecurizate și portul 8154pentru conexiunile securizate.

sudo firewall-cmd --zone=public --add-port=8153/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8154/tcp --permanent
sudo firewall-cmd --reload

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 unele erori 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 CentOS 7

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 CentOS 7

Î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 artefactele 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 CentOS 7

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 htpasswdcomanda pentru a crea un fișier cu parolă criptată.

sudo yum -y install httpd-tools

Creați un fișier cu parolă cu htpasswdcomanda 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 eliminând -copțiunea. -cOpțiunea va înlocui fișierul existent, înlocuind utilizatorii vechi cu noul utilizator.

sudo htpasswd -B /etc/go/passwd_auth gouser1

De când 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 Addbuton și furnizați un ID. Alegeți " Password File Authentication Plugin for GoCD" pentru ID-ul pluginului și direcționați calea către fișierul cu parolă. 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 CentOS 7

Î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 CentOS 7

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 8154conexiunile sigure. Deși portul 8154oferă 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 certificatul SSL gratuit Let's Encrypt. Serverul web Nginx va funcționa ca un proxy invers pentru a trimite solicitările primite către punctul HTTPfinal al GoCD .

Instalați Nginx.

sudo yum -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

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

sudo yum -y install certbot

Înainte de a putea solicita certificate, va trebui să permiteți porturi 80și 443, sau standard HTTPși HTTPSservicii, prin firewall. De asemenea, eliminați portul 8153, care ascultă conexiunile nesecurizate.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8153/tcp --permanent
sudo firewall-cmd --reload

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 /usr/share/nginx/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. În cazul în care certificatul expiră, acesta se va reînnoi automat.

Acum, schimbați fișierul de configurare implicit Nginx pentru a scoate default_serverlinia.

sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf

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

sudo nano /etc/nginx/conf.d/gocd.conf

Populați fișierul.

upstream gocd {
server 127.0.0.1:8153;
}

server {
    listen 80 default_server;
    server_name gocd.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 default_server;
    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;
    }
  }

Verificați dacă există erori în noul fișier de configurare.

sudo nginx -t

Dacă vedeți următoarea ieșire, configurația este fără erori.

[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Dacă ați primit un fel de eroare, asigurați-vă că verificați de două ori calea către certificatele SSL. 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 acreditările de administrator și navigați la " Admin >> Server Configuration" din bara de navigare de sus.

Cum se instalează și se configurează GoCD pe CentOS 7

Setați " Site URL" și " Secure Site URL" la https://gocd.example.com. Portul 8154trebuie să fie accesibil încă prin firewall, astfel încât agenții la distanță să se poată conecta la server prin port 8154, în cazul în care nu se pot conecta prin HTTPportul standard .

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 yum 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