Kako instalirati i konfigurirati GoCD na Ubuntu 16.04

GoCD je open source sustav kontinuirane isporuke i automatizacije. Omogućuje vam modeliranje složenih tijekova rada koristeći njegovo paralelno i sekvencijalno izvršenje. Njegova mapa toka vrijednosti omogućuje vam jednostavno vizualiziranje složenog tijeka rada s lakoćom. GoCD vam omogućuje da jednostavno usporedite dvije verzije i implementirate bilo koju verziju aplikacije koju želite. GoCD ekosustav sastoji se od GoCD poslužitelja i GoCD agenta. GoCD je odgovoran za kontrolu svega kao što je pokretanje web-baziranog korisničkog sučelja te upravljanje i pružanje poslova agentu. Go agenti odgovorni su za izvođenje poslova i implementacije.

Preduvjeti

  • Instanca poslužitelja Vultr Ubuntu 16.04 s najmanje 2 GB RAM-a.
  • Korisnik sudoa .
  • Naziv domene usmjeren prema poslužitelju.

Za ovaj vodič koristit ćemo 192.168.1.1kao javnu IP adresu i gocd.example.com kao ime domene usmjereno na Vultr instancu. Svakako zamijenite sva pojavljivanja primjera naziva domene i IP adrese stvarnim.

Ažurirajte svoj osnovni sustav pomoću vodiča Kako ažurirati Ubuntu 16.04 . Nakon što se vaš sustav ažurira, nastavite s instalacijom Jave.

Instalirajte Javu

GoCD zahtijeva Java verziju 8 i podržava i Oracle Java i OpenJDK. Dodajte Ubuntu spremište za Oracle Java 8.

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

Instalirajte Oracle Javu.

sudo apt -y install oracle-java8-installer

Provjerite verziju.

java -version

Vidjet ćete sljedeći izlaz.

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)

Postavite zadani put za Javu instaliranjem sljedećeg paketa.

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

Možete provjeriti je li JAVA_HOMEpostavljeno pokretanjem.

echo $JAVA_HOME

Vidjet ćeš.

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

Ako uopće ne vidite nikakav izlaz, morat ćete se odjaviti iz trenutne ljuske i ponovno se prijaviti.

Instalirajte GoCD

Instalirajte GoCD-ov službeni repozitorij u sustav.

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

Instalirajte GoCD poslužitelj u svoj sustav.

sudo apt install -y go-server

Pokrenite GoCD i omogućite mu da se automatski pokrene prilikom pokretanja.

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

Prije nego pristupimo nadzornoj ploči GoCD-a, napravimo novi direktorij za pohranu artefakata. Artefakti se mogu pohraniti na isti disk na kojem su instalirani operativni sustav i aplikacije. Alternativno, možete koristiti namjenski disk ili blok za pohranu za pohranu artefakata.

Ako želite koristiti isti disk za pohranu artefakata, samo stvorite novi direktorij i dajte vlasništvo GoCD korisniku.

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

Konfigurirajte pohranu blokova

Softver GoCD preporučuje korištenje dodatne particije ili pogona za pohranu artefakata. U kontinuiranoj platformi integracije i isporuke artefakti se generiraju vrlo često. Prostor na disku se vremenom smanjuje kada se novi artefakti kontinuirano generiraju. U nekoj fazi, vašem sustavu će ponestati slobodnog prostora na disku i usluge koje rade na vašem sustavu neće uspjeti. Da biste prevladali ovaj problem, možete priključiti novi pogon za pohranu bloka Vultr za pohranu artefakata. Ako i dalje želite ići s pohranom artefakata na isti pogon, preskočite na odjeljak "Konfiguriraj GoCD".

Postavite novi blok za pohranu i priključite ga na instancu GoCD poslužitelja. Sada stvorite novu particiju na blok uređaju za pohranu.

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

Napravite datotečni sustav na novom disku.

sudo mkfs.ext4 /dev/vdb1

Montirajte blok za pohranu.

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

Sada pokrenite dfi vidjet ćete novi pogon za pohranu bloka montiran 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

Omogućite vlasništvo nad imenikom GoCD korisniku.

sudo chown -R go:go /mnt/artifacts

Konfigurirajte GoCD

Sada možete pristupiti GoCD nadzornoj ploči na http://192.168.1.1:8153. Za pristup GoCD nadzornoj ploči putem zaštićene veze, pristupite https://192.168.1.1:8154. Dobit ćete pogrešku koja pokazuje da certifikati nisu valjani. Možete sigurno zanemariti pogrešku jer su certifikati samopotpisani. Iz sigurnosnih razloga, uvijek biste trebali koristiti nadzornu ploču preko zaštićene veze.

Prije nego što postavite novi cjevovod, idite na " Admin >> Server Configuration" s gornje navigacijske trake.

Unesite URL svoje nezaštićene stranice u polje " Site URL", a zaštićeno mjesto u polje " Secure Site URL".

Kako instalirati i konfigurirati GoCD na Ubuntu 16.04

Zatim unesite podatke o svom SMTP poslužitelju za slanje obavijesti e-poštom s GoCD-a.

Kako instalirati i konfigurirati GoCD na Ubuntu 16.04

Na kraju navedite put do mjesta gdje želite pohraniti artefakte. Ako ste odabrali pohraniti artefakte na isti disk kao i operativni sustav, unesite /opt/artifacts; ako ste odabrali priložiti blok za pohranu, tada možete unijeti /mnt/artifacts.

Također možete konfigurirati GoCD da automatski izbriše stare artefakte. Konfigurirajte sljedeću opciju prema veličini vašeg diska. Međutim, opcija automatskog brisanja ne preuzima sigurnosnu kopiju vaših starih artefakata. Da biste ručno napravili sigurnosnu kopiju i zatim izbrisali stare artefakte, onemogućite automatsko brisanje odabirom opcije " Never" za opciju " Auto delete old artifacts".

Kako instalirati i konfigurirati GoCD na Ubuntu 16.04

Morat ćete ponovno pokrenuti GoCD poslužitelj kako bi se primijenile nove promjene.

sudo systemctl restart go-server

Postavite autentifikaciju

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.

Kako instalirati i konfigurirati 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.

Kako instalirati i konfigurirati 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

The above cron job will run every day at 5:30 AM. If the certificate is due for expiration, it will automatically renew.

Create a new configuration file for the GoCD web interface.

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

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

Activate the configuration file.

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

Restart the Nginx web server to implement the change in configuration.

sudo systemctl restart nginx

Now you can access the GoCD dashboard at https://gocd.example.com. Log into your dashboard using the administrator credentials and navigate to "Admin >> Server Configuration" from the top navigation bar.

Kako instalirati i konfigurirati GoCD na Ubuntu 16.04

Set the "Site URL" and "Secure Site URL" to https://gocd.example.com.

Installing GoCD Agent

In the GoCD continuous integration environment, GoCD agents are the workers that are responsible for the execution of all the tasks. When a change in the source is detected, the pipeline is triggered and the jobs are assigned to available workers for execution. The agent then executes the task and reports the final status after execution.

To run a pipeline, at least one agent must to be configured. Proceed to install the GoCD agent on the GoCD server.

Since we have already imported the GoCD repository into the server, we can directly install Go Agent.

sudo apt install -y go-agent

Now, start the GoCD server and enable it to automatically start at boot time.

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

The GoCD agent running on the localhost is automatically enabled when detected.


Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više