Com instal·lar i configurar GoCD a Ubuntu 16.04

GoCD és un sistema d'automatització i lliurament continu de codi obert. Us permet modelar fluxos de treball complexos mitjançant la seva execució paral·lela i seqüencial. El seu mapa de flux de valor us permet visualitzar fàcilment un flux de treball complex amb facilitat. GoCD us permet comparar fàcilment dues compilacions i desplegar qualsevol versió de l'aplicació que vulgueu. L'ecosistema GoCD està format pel servidor GoCD i l'agent GoCD. GoCD és responsable de controlar-ho tot, com ara executar la interfície d'usuari basada en web i gestionar i proporcionar feines a l'agent. Els agents de Go són els responsables d'executar les feines i els desplegaments.

Requisits previs

  • Una instància del servidor Vultr Ubuntu 16.04 amb almenys 2 GB de RAM.
  • Un usuari de sudo .
  • Un nom de domini apuntat cap al servidor.

Per a aquest tutorial, utilitzarem 192.168.1.1com a adreça IP pública i gocd.example.com com a nom de domini apuntat cap a la instància Vultr. Assegureu-vos de substituir totes les ocurrències del nom de domini d'exemple i l'adreça IP per l'actual.

Actualitzeu el vostre sistema base mitjançant la guia Com actualitzar Ubuntu 16.04 . Un cop actualitzat el sistema, procediu a instal·lar Java.

Instal·leu Java

GoCD requereix Java versió 8 i és compatible amb Oracle Java i OpenJDK. Afegiu el dipòsit d'Ubuntu per a Oracle Java 8.

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

Instal·leu Oracle Java.

sudo apt -y install oracle-java8-installer

Comproveu la versió.

java -version

Veureu la següent sortida.

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)

Establiu el camí predeterminat per a Java instal·lant el paquet següent.

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

Podeu comprovar si JAVA_HOMEestà configurat executant-lo.

echo $JAVA_HOME

Ja ho veuràs.

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

Si no veieu cap sortida, haureu de tancar la sessió de l'intèrpret d'ordres actual i tornar a iniciar la sessió.

Instal·leu GoCD

Instal·leu el repositori oficial de GoCD al sistema.

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

Instal·leu el servidor GoCD al vostre sistema.

sudo apt install -y go-server

Inicieu GoCD i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.

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

Abans d'accedir al tauler de GoCD, creem un directori nou per emmagatzemar els artefactes. Els artefactes es poden emmagatzemar al mateix disc on estan instal·lats el sistema operatiu i les aplicacions. Alternativament, podeu utilitzar un disc dedicat o una unitat d'emmagatzematge de blocs per emmagatzemar els artefactes.

Si voleu utilitzar el mateix disc per emmagatzemar els artefactes, només cal que creeu un nou directori i proporcioneu la propietat a l'usuari de GoCD.

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

Configura l'emmagatzematge de blocs

El programari GoCD recomana que utilitzeu una partició o unitat addicional per emmagatzemar els artefactes. En una plataforma d'integració i lliurament contínua, els artefactes es generen molt sovint. L'espai en disc disminueix amb el temps quan es generen nous artefactes contínuament. En algun moment, el vostre sistema es quedarà sense espai al disc lliure i els serveis que s'executen al vostre sistema fallaran. Per solucionar aquest problema, podeu adjuntar una nova unitat d' emmagatzematge de blocs Vultr per emmagatzemar els artefactes. Si encara voleu continuar amb l'emmagatzematge d'artefactes a la mateixa unitat, aneu a la secció "Configura GoCD".

Desplegueu una nova unitat d'emmagatzematge de blocs i connecteu-la a la vostra instància del servidor GoCD. Ara creeu una nova partició al dispositiu d'emmagatzematge de blocs.

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

Creeu el sistema de fitxers al disc nou.

sudo mkfs.ext4 /dev/vdb1

Munteu la unitat d'emmagatzematge de blocs.

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

Ara, executeu dfi veureu la nova unitat d'emmagatzematge de blocs muntada a /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

Proporcioneu la propietat del directori a l'usuari de GoCD.

sudo chown -R go:go /mnt/artifacts

Configura GoCD

Ara podeu accedir al tauler de GoCD a http://192.168.1.1:8153. Per accedir al tauler de GoCD amb una connexió segura, accediu a https://192.168.1.1:8154. Obtindreu un error que indica que els certificats no són vàlids. Podeu ignorar l'error amb seguretat, ja que els certificats estan signats automàticament. Per motius de seguretat, sempre hauríeu d'utilitzar el tauler mitjançant una connexió segura.

Abans de configurar una canalització nova, aneu a " Admin >> Server Configuration" des de la barra de navegació superior.

Introduïu l'URL del vostre lloc no segur al Site URLcamp " " i el lloc segur al Secure Site URLcamp " ".

Com instal·lar i configurar GoCD a Ubuntu 16.04

A continuació, proporcioneu els detalls del vostre servidor SMTP per enviar notificacions per correu electrònic des de GoCD.

Com instal·lar i configurar GoCD a Ubuntu 16.04

Finalment, proporcioneu el camí cap a la ubicació on voleu emmagatzemar els artefactes. Si heu triat emmagatzemar els artefactes al mateix disc que el sistema operatiu, introduïu /opt/artifacts; si heu decidit connectar una unitat d'emmagatzematge de blocs, podeu introduir /mnt/artifacts.

També podeu configurar GoCD per eliminar automàticament els artefactes antics. Configureu la següent opció segons la mida del vostre disc. Tanmateix, l'opció d'eliminació automàtica no fa una còpia de seguretat dels vostres artefactes antics. Per fer una còpia de seguretat manualment i després suprimir els artefactes antics, desactiveu la supressió automàtica escollint l' Neveropció " " per a l' Auto delete old artifactsopció " ".

Com instal·lar i configurar GoCD a Ubuntu 16.04

Haureu de reiniciar el servidor GoCD perquè s'apliquin els nous canvis.

sudo systemctl restart go-server

Configura l'autenticació

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.

Com instal·lar i configurar GoCD a 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.

Com instal·lar i configurar GoCD a 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

De manera predeterminada, GoCD escolta els ports 8153 i les 8154 connexions segures. Tot i que el port 8154 proporciona una connexió segura a l'aplicació, també mostra errors del navegador ja que utilitza un certificat autofirmat. En aquesta secció del tutorial, instal·larem i protegirem Nginx amb un certificat SSL gratuït de Let's Encrypt. El servidor web Nginx funcionarà com a servidor intermediari invers per reenviar les sol·licituds entrants al HTTP punt final de GoCD .

Instal·leu Nginx.

sudo apt -y install nginx

Inicieu Nginx i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.

sudo systemctl start nginx
sudo systemctl enable nginx

Afegiu el repositori Certbot.

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

Instal·leu Certbot, que és l'aplicació client de Let's Encrypt CA.

sudo apt -y install certbot

Nota : per obtenir certificats de Let's Encrypt CA, el domini per al qual s'han de generar els certificats s'ha d'apuntar cap al servidor. Si no, feu els canvis necessaris als registres DNS del domini i espereu que el DNS es propagui abans de tornar a fer la sol·licitud de certificat. Certbot verifica l'autoritat del domini abans de proporcionar els certificats.

Generar els certificats SSL.

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

És probable que els certificats generats s'emmagatzemin a /etc/letsencrypt/live/gocd.example.com/. El certificat SSL s'emmagatzemarà com a fullchain.pem i la clau privada com a privkey.pem.

Els certificats de Let's Encrypt caduquen en 90 dies, per la qual cosa es recomana configurar la renovació automàtica dels certificats mitjançant tasques cron.

Obriu el fitxer de treball cron.

sudo crontab -e

Afegiu la línia següent al final del fitxer.

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

El treball cron anterior s'executarà cada dia a les 5:30 del matí. Si el certificat ha de caducar, es renovarà automàticament.

Creeu un fitxer de configuració nou per a la interfície web de GoCD.

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

Omple el fitxer.

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

Activeu el fitxer de configuració.

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

Reinicieu el servidor web Nginx per implementar el canvi de configuració.

sudo systemctl restart nginx

Ara podeu accedir al tauler de GoCD a https://gocd.example.com. Inicieu sessió al vostre tauler amb les credencials d'administrador i navegueu a " Admin >> Server Configuration" des de la barra de navegació superior.

Com instal·lar i configurar GoCD a Ubuntu 16.04

Estableix " Site URL" i " Secure Site URL" a https://gocd.example.com.

Instal·lació de l'agent GoCD

En l'entorn d'integració contínua de GoCD, els agents de GoCD són els treballadors responsables de l'execució de totes les tasques. Quan es detecta un canvi en la font, s'activa la canalització i els treballs s'assignen als treballadors disponibles per a l'execució. A continuació, l'agent executa la tasca i informa de l'estat final després de l'execució.

Per executar una canalització, cal configurar almenys un agent. Continueu amb la instal·lació de l'agent GoCD al servidor GoCD.

Com que ja hem importat el repositori GoCD al servidor, podem instal·lar directament Go Agent.

sudo apt install -y go-agent

Ara, inicieu el servidor GoCD i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.

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

L'agent GoCD que s'executa a l'host local s'habilita automàticament quan es detecta.


Leave a Comment

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació