Kako namestiti in konfigurirati GoCD na Ubuntu 16.04

GoCD je odprtokodni sistem za neprekinjeno dostavo in avtomatizacijo. Omogoča vam modeliranje zapletenih delovnih tokov z uporabo njegovega vzporednega in zaporednega izvajanja. Njegov zemljevid toka vrednosti vam omogoča enostavno vizualizacijo zapletenega delovnega procesa z lahkoto. GoCD vam omogoča enostavno primerjavo dveh različic in uvajanje katere koli različice aplikacije, ki jo želite. Ekosistem GoCD je sestavljen iz strežnika GoCD in agenta GoCD. GoCD je odgovoren za nadzor vsega, kot je zagon spletnega uporabniškega vmesnika ter upravljanje in zagotavljanje opravil agentu. Go agenti so odgovorni za izvajanje opravil in razmestitev.

Predpogoji

  • Primerek strežnika Vultr Ubuntu 16.04 z vsaj 2 GB RAM-a.
  • Uporabnik sudo .
  • Ime domene, usmerjeno proti strežniku.

Za to vadnico bomo uporabili 192.168.1.1kot javni naslov IP in gocd.example.com kot ime domene, usmerjeno proti primerku Vultr. Poskrbite, da boste zamenjali vse pojavitve vzorčnega imena domene in naslova IP z dejanskim.

Posodobite svoj osnovni sistem z uporabo priročnika Kako posodobiti Ubuntu 16.04 . Ko je vaš sistem posodobljen, nadaljujte z namestitvijo Jave.

Namesti Java

GoCD zahteva različico Java 8 in podpira tako Oracle Java kot OpenJDK. Dodajte repozitorij Ubuntu za Oracle Java 8.

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

Namestite Oracle Java.

sudo apt -y install oracle-java8-installer

Preverite različico.

java -version

Videli boste naslednji izhod.

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)

Nastavite privzeto pot za Javo tako, da namestite naslednji paket.

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

Če JAVA_HOMEje nastavljeno, lahko preverite tako, da zaženete.

echo $JAVA_HOME

Boš videl.

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

Če izhoda sploh ne vidite, se boste morali odjaviti iz trenutne lupine in se znova prijaviti.

Namestite GoCD

Namestite uradni repozitorij GoCD v 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

Namestite strežnik GoCD v svoj sistem.

sudo apt install -y go-server

Zaženite GoCD in omogočite, da se samodejno zažene ob zagonu.

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

Preden dostopimo do nadzorne plošče GoCD, ustvarimo nov imenik za shranjevanje artefaktov. Artefakte je mogoče shraniti na isti disk, na katerem so nameščeni operacijski sistem in aplikacije. Za shranjevanje artefaktov lahko uporabite tudi namenski disk ali blok za shranjevanje.

Če želite isti disk uporabiti za shranjevanje artefaktov, preprosto ustvarite nov imenik in zagotovite lastništvo uporabniku GoCD.

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

Konfigurirajte blokovno shranjevanje

Programska oprema GoCD priporoča, da za shranjevanje artefaktov uporabite dodatno particijo ali pogon. V nenehni platformi za integracijo in dostavo se artefakti generirajo zelo pogosto. Prostor na disku se sčasoma zmanjšuje, ko se nenehno ustvarjajo novi artefakti. V neki fazi bo vašemu sistemu zmanjkalo prostega prostora na disku in storitve, ki se izvajajo v vašem sistemu, ne bodo uspele. Če želite premagati to težavo, lahko za shranjevanje artefaktov priključite nov pogon za shranjevanje blokov Vultr . Če še vedno želite shranjevati artefakte na isti pogon, preskočite na razdelek »Konfiguriraj GoCD«.

Namestite nov pogon za shranjevanje blokov in ga priključite na vaš primerek strežnika GoCD. Zdaj ustvarite novo particijo na napravi za shranjevanje blokov.

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

Ustvarite datotečni sistem na novem disku.

sudo mkfs.ext4 /dev/vdb1

Namestite pogon za shranjevanje blokov.

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

Zdaj zaženite dfin videli boste nov pogon za shranjevanje blokov, nameščen 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

Zagotovite lastništvo imenika uporabniku GoCD.

sudo chown -R go:go /mnt/artifacts

Konfigurirajte GoCD

Zdaj lahko dostopate do nadzorne plošče GoCD na http://192.168.1.1:8153. Za dostop do nadzorne plošče GoCD prek zaščitene povezave odprite https://192.168.1.1:8154. Dobili boste napako, ki kaže, da potrdila niso veljavna. Napako lahko varno prezrete, saj so potrdila samopodpisana. Zaradi varnosti morate nadzorno ploščo vedno uporabljati prek zaščitene povezave.

Preden nastavite nov cevovod, se Admin >> Server Configurationv zgornji vrstici za krmarjenje pomaknite do » «.

Vnesite URL svojega nezaščitenega spletnega mesta v polje » Site URL« in zaščiteno spletno mesto v polje » Secure Site URL«.

Kako namestiti in konfigurirati GoCD na Ubuntu 16.04

Nato vnesite podatke o strežniku SMTP za pošiljanje e-poštnih obvestil iz GoCD.

Kako namestiti in konfigurirati GoCD na Ubuntu 16.04

Na koncu navedite pot do mesta, kjer želite shraniti artefakte. Če ste se odločili shraniti artefakte na isti disk kot operacijski sistem, vnesite /opt/artifacts; če ste se odločili za priključitev blokovnega pogona za shranjevanje, lahko vnesete /mnt/artifacts.

GoCD lahko tudi konfigurirate tako, da samodejno izbriše stare artefakte. Konfigurirajte naslednjo možnost glede na velikost vašega diska. Vendar pa možnost samodejnega brisanja ne naredi varnostne kopije vaših starih artefaktov. Če želite ročno narediti varnostno kopijo in nato izbrisati stare artefakte, onemogočite samodejno brisanje tako, da izberete možnost " Never" za možnost " Auto delete old artifacts".

Kako namestiti in konfigurirati GoCD na Ubuntu 16.04

Za uveljavitev novih sprememb boste morali znova zagnati strežnik GoCD.

sudo systemctl restart go-server

Nastavitev avtentikacije

Nadzorna plošča GoCD privzeto ni konfigurirana za uporabo kakršnega koli preverjanja pristnosti, vendar podpira preverjanje pristnosti z uporabo datoteke z geslom in LDAP. V tej vadnici bomo nastavili preverjanje pristnosti na podlagi gesla.

Opomba : Nastavitev preverjanja pristnosti je neobvezen korak, vendar je močno priporočljiva za javne strežnike, kot je Vultr.

Namestite orodja Apache, da lahko uporabimo htpasswd ukaz za ustvarjanje šifrirane datoteke z geslom.

sudo apt -y install apache2-utils

Ustvarite datoteko z geslom z htpasswd ukazom z uporabo šifriranja Bcrypt.

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

Dvakrat vnesite geslo za uporabnika. Videli boste naslednji izhod.

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

Z istim ukazom zgoraj lahko dodate toliko uporabnikov, kot želite, vendar odstranite -c možnost. -c Možnost, bo nadomestil obstoječo datoteko, ki nadomešča stare uporabnike z novega uporabnika.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Zdaj, ko smo ustvarili datoteko z geslom, znova dostopajte do nadzorne plošče GoCD. Admin >> Security >> Authorization ConfigurationsV zgornji vrstici za krmarjenje se pomaknite na » «. Kliknite na Add gumb in vnesite poljuben ID. Izberite " Password File Authentication Plugin for GoCD" za ID vtičnika in usmerite pot do datoteke z geslom. Zdaj kliknite Check Connectiongumb " ", da preverite, ali lahko GoCD uporablja datoteko z geslom za preverjanje pristnosti.

Kako namestiti in konfigurirati GoCD na Ubuntu 16.04

Na koncu shranite način preverjanja pristnosti. Znova naložite nadzorno ploščo in samodejno vas bo odjavila. Zdaj boste videli prijavni zaslon. Prijavite se s predhodno ustvarjenimi poverilnicami.

Skrbniškega uporabnika boste morali promovirati ročno, sicer bodo imeli vsi uporabniki skrbniške pravice. Admin >> User SummaryV zgornji vrstici za krmarjenje se pomaknite na » «.

Zdaj izberite skrbniškega uporabnika, ki ste ga ustvarili, in kliknite Rolesspustni meni " ". Uporabnika povišajte v edinega skrbnika tako, da izberete Go System Administratorpotrditveno polje " ".

Kako namestiti in konfigurirati GoCD na Ubuntu 16.04

Če želite dodati uporabnike v GoCD, ustvarjeno v datoteki z gesli, kliknite ADDgumb " " in poiščite uporabnika, ki bi jih dodal. Uporabniki so tudi samodejno dodani na nadzorno ploščo GoCD ob njihovi prvi prijavi. Očitno morajo biti uporabniki, da se prijavijo, dodati v datoteko z gesli, ki smo jo ustvarili prej.

Zaščita GoCD z Let's Encrypt SSL

GoCD privzeto posluša vrata 8153 in 8154 varne povezave. Čeprav vrata 8154 zagotavljajo varno povezavo z aplikacijo, prikazujejo tudi napake brskalnika, saj uporablja samopodpisano potrdilo. V tem razdelku vadnice bomo namestili in zavarovali Nginx z brezplačnim certifikatom Let's Encrypt SSL. Spletni strežnik Nginx bo deloval kot povratni proxy za posredovanje dohodnih zahtev na HTTP končno točko GoCD .

Namestite Nginx.

sudo apt -y install nginx

Zaženite Nginx in omogočite, da se samodejno zažene ob zagonu.

sudo systemctl start nginx
sudo systemctl enable nginx

Dodajte repozitorij Certbot.

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

Namestite Certbot, ki je odjemalska aplikacija za 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 namestiti in 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.


Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več