Come installare e configurare GoCD su Ubuntu 16.04

GoCD è un sistema di consegna e automazione continuo open source. Ti permette di modellare flussi di lavoro complessi usando la sua esecuzione parallela e sequenziale. La mappa dei flussi di valori consente di visualizzare facilmente un flusso di lavoro complesso con facilità. GoCD ti consente di confrontare facilmente due build e distribuire qualsiasi versione dell'applicazione desiderata. L'ecosistema GoCD è costituito da server GoCD e agente GoCD. GoCD è responsabile del controllo di tutto, come l'esecuzione dell'interfaccia utente basata sul Web e la gestione e la fornitura di lavori all'agente. Gli agenti Go sono responsabili dell'esecuzione dei lavori e delle distribuzioni.

Prerequisiti

  • Un'istanza del server Vultr Ubuntu 16.04 con almeno 2 GB di RAM.
  • Un utente sudo .
  • Un nome di dominio puntato verso il server.

Per questo tutorial, utilizzeremo 192.168.1.1come indirizzo IP pubblico e gocd.example.com come nome di dominio puntato verso l'istanza Vultr. Assicurati di sostituire tutte le occorrenze del nome di dominio e dell'indirizzo IP di esempio con quello effettivo.

Aggiorna il tuo sistema di base usando la guida Come aggiornare Ubuntu 16.04 . Dopo aver aggiornato il sistema, procedere con l'installazione di Java.

Installa Java

GoCD richiede Java versione 8 e supporta sia Oracle Java che OpenJDK. Aggiungi il repository Ubuntu per Oracle Java 8.

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

Installa Oracle Java.

sudo apt -y install oracle-java8-installer

Controlla la versione

java -version

Vedrai il seguente 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)

Impostare il percorso predefinito per Java installando il seguente pacchetto.

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

È possibile verificare se JAVA_HOMEè impostato eseguendo.

echo $JAVA_HOME

Vedrai.

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

Se non vedi alcun output, dovrai disconnetterti dalla shell corrente e riconnetterti.

Installa GoCD

Installa il repository ufficiale di GoCD nel 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

Installa il server GoCD nel tuo sistema.

sudo apt install -y go-server

Avvia GoCD e abilita l'avvio automatico all'avvio.

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

Prima di accedere alla dashboard di GoCD, creiamo una nuova directory per archiviare gli artefatti. Gli artefatti possono essere memorizzati sullo stesso disco in cui sono installati il ​​sistema operativo e le applicazioni. In alternativa, è possibile utilizzare un disco dedicato o un'unità di archiviazione a blocchi per memorizzare gli artefatti.

Se si desidera utilizzare lo stesso disco per memorizzare gli artefatti, è sufficiente creare una nuova directory e fornire la proprietà all'utente GoCD.

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

Configura Block Storage

Il software GoCD consiglia di utilizzare una partizione o un'unità aggiuntiva per memorizzare gli artefatti. In una piattaforma di integrazione e consegna continua, gli artefatti vengono generati molto spesso. Lo spazio su disco diminuisce nel tempo quando vengono generati continuamente nuovi artefatti. Ad un certo punto, il sistema esaurirà lo spazio libero su disco e i servizi in esecuzione sul sistema falliranno. Per ovviare a questo problema, è possibile collegare una nuova unità di archiviazione a blocchi Vultr per archiviare gli artefatti. Se desideri comunque continuare con l'archiviazione di artefatti sulla stessa unità, passa alla sezione "Configura GoCD".

Distribuire una nuova unità di archiviazione a blocchi e collegarla all'istanza del server GoCD. Ora crea una nuova partizione sul dispositivo di archiviazione a blocchi.

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

Crea il file system sul nuovo disco.

sudo mkfs.ext4 /dev/vdb1

Montare l'unità di archiviazione a blocchi.

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

Ora esegui dfe vedrai la nuova unità di archiviazione a blocchi montata /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

Fornire la proprietà della directory all'utente GoCD.

sudo chown -R go:go /mnt/artifacts

Configura GoCD

Ora puoi accedere alla dashboard di GoCD su http://192.168.1.1:8153. Per accedere alla dashboard di GoCD su una connessione protetta, accedere https://192.168.1.1:8154. Verrà visualizzato un errore a indicare che i certificati non sono validi. È possibile ignorare in modo sicuro l'errore poiché i certificati sono autofirmati. Per motivi di sicurezza, è necessario utilizzare sempre la dashboard su una connessione protetta.

Prima di impostare una nuova pipeline, vai a " Admin >> Server Configuration" dalla barra di navigazione in alto.

Inserisci l'URL nel tuo sito non protetto nel campo " Site URL" e nel sito protetto nel campo " Secure Site URL".

Come installare e configurare GoCD su Ubuntu 16.04

Successivamente, fornisci i dettagli del tuo server SMTP per inviare notifiche e-mail da GoCD.

Come installare e configurare GoCD su Ubuntu 16.04

Infine, fornisci il percorso della posizione in cui desideri conservare gli artefatti. Se hai scelto di salvare gli artefatti sullo stesso disco del sistema operativo, inserisci /opt/artifacts; se hai scelto di collegare un'unità di archiviazione a blocchi, puoi accedere /mnt/artifacts.

Puoi anche configurare GoCD per eliminare automaticamente i vecchi artefatti. Configura l'opzione successiva in base alle dimensioni del disco. Tuttavia, l'opzione di eliminazione automatica non esegue un backup dei vecchi artefatti. Per eseguire manualmente un backup e quindi eliminare i vecchi artefatti, disabilitare l'eliminazione automatica selezionando l' Neveropzione " " per l' Auto delete old artifactsopzione " ".

Come installare e configurare GoCD su Ubuntu 16.04

Sarà necessario riavviare il server GoCD in modo da applicare le nuove modifiche.

sudo systemctl restart go-server

Configura autenticazione

Per impostazione predefinita, il dashboard GoCD non è configurato per utilizzare alcun tipo di autenticazione, ma supporta l'autenticazione mediante un file di password e LDAP. In questo tutorial, configureremo l'autenticazione basata su password.

Nota : la configurazione dell'autenticazione è un passaggio facoltativo, ma è fortemente consigliata per i server pubblici, come Vultr.

Installa gli strumenti di Apache in modo da poter usare il htpasswd comando per creare un file di password crittografato.

sudo apt -y install apache2-utils

Creare un file di password con il htpasswd comando utilizzando la crittografia Bcrypt.

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

Fornire la password per l'utente due volte. Vedrai il seguente output.

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

Puoi aggiungere tutti gli utenti che desideri utilizzando lo stesso comando sopra, ma rimuovi l' -c opzione. L' -c opzione sostituirà il file esistente, sostituendo i vecchi utenti con il nuovo utente.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Ora che abbiamo creato il file della password, accedi nuovamente alla dashboard di GoCD. Passare a " Admin >> Security >> Authorization Configurations" dalla barra di navigazione in alto. Fare clic sul Add pulsante e fornire qualsiasi ID. Scegli " Password File Authentication Plugin for GoCD" per l'ID plug-in e indirizza il percorso al file della password. Ora fai clic sul pulsante " Check Connection" per verificare che GoCD possa utilizzare il file della password per l'autenticazione.

Come installare e configurare GoCD su Ubuntu 16.04

Infine, salva il metodo di autenticazione. Ricarica la dashboard e ti disconnetterà automaticamente. Ora vedrai una schermata di accesso. Accedi utilizzando le credenziali create in precedenza.

Dovrai promuovere manualmente l'utente amministratore, altrimenti tutti gli utenti disporranno dei privilegi di amministratore. Passare a " Admin >> User Summary" dalla barra di navigazione in alto.

Ora seleziona l'utente amministratore che hai creato e fai clic sul Rolesmenu a discesa " ". Promuovi l'utente al solo amministratore selezionando la Go System Administratorcasella " ".

Come installare e configurare GoCD su Ubuntu 16.04

Per aggiungere gli utenti in GoCD creati nel file della password, fare clic sul pulsante " ADD" e cercare l'utente che li aggiunga. Gli utenti vengono inoltre aggiunti automaticamente alla dashboard di GoCD al primo accesso. Ovviamente, affinché gli utenti possano accedere, devono essere aggiunti al file delle password che abbiamo creato in precedenza.

Protezione di GoCD con Let's Encrypt SSL

Per impostazione predefinita, GoCD ascolta le porte 8153 e 8154 le connessioni sicure. Sebbene la porta 8154 offra una connessione sicura all'applicazione, mostra anche errori del browser in quanto utilizza un certificato autofirmato. In questa sezione del tutorial, installeremo e proteggeremo Nginx con un certificato SSL gratuito Let's Encrypt. Il web server Nginx funzionerà come proxy inverso per inoltrare le richieste in arrivo all'endpoint di GoCD HTTP .

Installa Nginx.

sudo apt -y install nginx

Avvia Nginx e abilita l'avvio automatico all'avvio.

sudo systemctl start nginx
sudo systemctl enable nginx

Aggiungi il repository Certbot.

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

Installa Certbot, che è l'applicazione client per Let's Encrypt CA.

sudo apt -y install certbot

Nota : per ottenere certificati da Let's Encrypt CA, il dominio per il quale devono essere generati i certificati deve essere puntato verso il server. In caso contrario, apportare le modifiche necessarie ai record DNS del dominio e attendere la propagazione del DNS prima di effettuare nuovamente la richiesta di certificato. Certbot controlla l'autorità di dominio prima di fornire i certificati.

Genera i certificati SSL.

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

È probabile che i certificati generati siano archiviati in /etc/letsencrypt/live/gocd.example.com/. Il certificato SSL verrà archiviato come fullchain.pem e la chiave privata verrà archiviata come privkey.pem.

Let's Encrypt certificati scadranno tra 90 giorni, quindi si consiglia di impostare il rinnovo automatico dei certificati utilizzando cron job.

Apri il file di lavoro cron.

sudo crontab -e

Aggiungi la seguente riga alla fine del file.

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

Il precedente cron job verrà eseguito ogni giorno alle 5:30. Se il certificato è in scadenza, verrà rinnovato automaticamente.

Crea un nuovo file di configurazione per l'interfaccia web GoCD.

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

Popolare il file.

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

Attiva il file di configurazione.

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

Riavviare il server Web Nginx per implementare la modifica della configurazione.

sudo systemctl restart nginx

Ora puoi accedere alla dashboard di GoCD all'indirizzo https://gocd.example.com. Accedi alla tua dashboard usando le credenziali di amministratore e vai a " Admin >> Server Configuration" dalla barra di navigazione in alto.

Come installare e configurare GoCD su Ubuntu 16.04

Impostare " Site URL" e " Secure Site URL" su https://gocd.example.com.

Installazione di GoCD Agent

Nell'ambiente di integrazione continua GoCD, gli agenti GoCD sono i lavoratori responsabili dell'esecuzione di tutte le attività. Quando viene rilevata una modifica all'origine, la pipeline viene attivata e i lavori vengono assegnati ai lavoratori disponibili per l'esecuzione. L'agente quindi esegue l'attività e riporta lo stato finale dopo l'esecuzione.

Per eseguire una pipeline, è necessario configurare almeno un agente. Procedere con l'installazione dell'agente GoCD sul server GoCD.

Poiché abbiamo già importato il repository GoCD nel server, possiamo installare direttamente Go Agent.

sudo apt install -y go-agent

Ora, avvia il server GoCD e abilitalo all'avvio automatico all'avvio.

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

L'agente GoCD in esecuzione sull'host locale viene automaticamente abilitato quando viene rilevato.



Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.