Előfeltételek
Java telepítése
Telepítse a GoCD-t
Blokktároló konfigurálása
Konfigurálja a GoCD-t
Hitelesítés beállítása
GoCD biztonságossá tétele a Let's Encrypt SSL segítségével
A GoCD Agent telepítése
A GoCD egy nyílt forráskódú, folyamatos szállítási és automatizálási rendszer. Lehetővé teszi összetett munkafolyamatok modellezését párhuzamos és szekvenciális végrehajtásával. Értékáram-térképe lehetővé teszi egy összetett munkafolyamat egyszerű megjelenítését. A GoCD segítségével könnyedén összehasonlíthat két buildet, és telepítheti az alkalmazás tetszőleges verzióját. A GoCD ökoszisztéma GoCD szerverből és GoCD ügynökből áll. A GoCD felelős minden irányításért, például a web-alapú felhasználói felület futtatásáért, valamint a feladatok kezeléséért és az ügynök számára történő szolgáltatásért. A Go ügynökök felelősek a feladatok és a telepítések lebonyolításáért.
Előfeltételek
- Vultr Ubuntu 16.04 szerverpéldány legalább 2 GB RAM-mal.
- Egy sudo felhasználó .
- Egy domain név a szerverre mutatott.
Ebben az oktatóanyagban 192.168.1.1
nyilvános IP-címként és gocd.example.com
a Vultr példány felé mutató tartománynévként fogjuk használni . Kérjük, ügyeljen arra, hogy a példa domain név és IP-cím minden előfordulását lecserélje a ténylegesre.
Frissítse alaprendszerét az Ubuntu 16.04 frissítése útmutató segítségével . A rendszer frissítése után folytassa a Java telepítésével.
Java telepítése
A GoCD a Java 8-as verzióját igényli, és támogatja az Oracle Java-t és az OpenJDK-t is. Adja hozzá az Oracle Java 8 Ubuntu tárházát.
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Telepítse az Oracle Java-t.
sudo apt -y install oracle-java8-installer
Ellenőrizze a verziót.
java -version
A következő kimenetet fogja látni.
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)
Állítsa be a Java alapértelmezett elérési útját a következő csomag telepítésével.
sudo apt -y install oracle-java8-set-default
Futással ellenőrizheti, hogy be JAVA_HOME
van-e állítva.
echo $JAVA_HOME
Meglátod.
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
Ha egyáltalán nem látja a kimenetet, ki kell jelentkeznie az aktuális shellből, majd újra be kell jelentkeznie.
Telepítse a GoCD-t
Telepítse a GoCD hivatalos adattárát a rendszerbe.
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
Telepítse a GoCD szervert a rendszerébe.
sudo apt install -y go-server
Indítsa el a GoCD-t, és engedélyezze, hogy rendszerindításkor automatikusan elinduljon.
sudo systemctl start go-server
sudo systemctl enable go-server
Mielőtt hozzáférnénk a GoCD irányítópultjához, hozzunk létre egy új könyvtárat a műtermékek tárolására. A műtermékek ugyanazon a lemezen tárolhatók, amelyre az operációs rendszer és az alkalmazások telepítve vannak. Alternatív megoldásként használhat dedikált lemezt vagy blokktároló meghajtót a műtermékek tárolására.
Ha ugyanazt a lemezt szeretné használni a műtermékek tárolására, csak hozzon létre egy új könyvtárat, és adja meg a tulajdonjogot a GoCD felhasználónak.
sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts
A GoCD szoftver azt javasolja, hogy használjon további partíciót vagy meghajtót a műtermékek tárolására. A folyamatos integrációs és szállítási platformon nagyon gyakran keletkeznek műtermékek. A lemezterület idővel csökken, ha folyamatosan új műtermékek jönnek létre. A rendszer egy bizonyos szakaszában elfogy a szabad lemezterület, és a rendszeren futó szolgáltatások meghiúsulnak. A probléma megoldása érdekében csatolhat egy új Vultr blokktároló meghajtót a műtermékek tárolására. Ha továbbra is ugyanazon a meghajtón szeretné tárolni a műtermékeket, ugorjon a „GoCD konfigurálása” szakaszra.
Telepítsen egy új blokktároló meghajtót, és csatolja a GoCD-kiszolgálópéldányhoz. Most hozzon létre egy új partíciót a blokktároló eszközön.
sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%
Hozza létre a fájlrendszert az új lemezen.
sudo mkfs.ext4 /dev/vdb1
Szerelje fel a blokktároló meghajtót.
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
Most futtassa, df
és látni fogja az új blokktároló meghajtót a következőre szerelve /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
Adja meg a címtár tulajdonjogát a GoCD felhasználónak.
sudo chown -R go:go /mnt/artifacts
Most már hozzáférhet a GoCD műszerfal http://192.168.1.1:8153
. A GoCD irányítópultjának biztonságos kapcsolaton keresztüli eléréséhez nyissa meg a https://192.168.1.1:8154
. Hibaüzenetet kap, amely azt jelzi, hogy a tanúsítványok nem érvényesek. Nyugodtan figyelmen kívül hagyhatja a hibát, mivel a tanúsítványok önaláírtak. Biztonsági okokból mindig biztonságos kapcsolaton keresztül használja a műszerfalat.
Mielőtt új folyamatot hozna létre, navigáljon a " Admin >> Server Configuration
" elemre a felső navigációs sávról.
Írja be a nem biztonságos webhely URL-jét a " Site URL
" mezőbe, és a védett webhelyét a " Secure Site URL
" mezőbe.

Ezután adja meg az SMTP-kiszolgáló adatait, hogy e-mailes értesítéseket küldhessen a GoCD-ről.

Végül adja meg annak a helynek az elérési útját, ahol a műtermékeket tárolni szeretné. Ha úgy döntött, hogy a melléktermékeket ugyanazon a lemezen tárolja, mint az operációs rendszer, írja be a /opt/artifacts
; ha úgy döntött, hogy csatolja a blokk tárolóeszközt, akkor adja meg /mnt/artifacts
.
A GoCD-t úgy is beállíthatja, hogy automatikusan törölje a régi műtermékeket. Állítsa be a következő opciót a lemez méretének megfelelően. Az automatikus törlés opció azonban nem készít biztonsági másolatot a régi műtermékekről. Ha manuálisan szeretne biztonsági másolatot készíteni, majd törölni a régi műtermékeket, kapcsolja ki az automatikus törlést a " Never
" lehetőség kiválasztásával a " Auto delete old artifacts
" lehetőségnél.

Az új módosítások alkalmazásához újra kell indítania a GoCD szervert.
sudo systemctl restart go-server
Hitelesítés beállítása
Alapértelmezés szerint a GoCD irányítópultja nincs konfigurálva semmilyen hitelesítés használatára, de támogatja a jelszófájl és az LDAP használatával történő hitelesítést. Ebben az oktatóanyagban jelszó alapú hitelesítést állítunk be.
Megjegyzés : A hitelesítés beállítása nem kötelező lépés, de kifejezetten ajánlott nyilvános kiszolgálókhoz, például a Vultrhoz.
Telepítse az Apache eszközöket, hogy a htpasswd
parancs segítségével titkosított jelszófájlt tudjunk létrehozni.
sudo apt -y install apache2-utils
Hozzon létre egy jelszófájlt a htpasswd
paranccsal a Bcrypt titkosítás használatával.
sudo htpasswd -B -c /etc/go/passwd_auth goadmin
Kétszer adja meg a felhasználó jelszavát. A következő kimenetet fogja látni.
[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin
A fenti paranccsal tetszőleges számú felhasználót adhat hozzá, de törölje a -c
lehetőséget. Az -c
opció lecseréli a meglévő fájlt, és a régi felhasználókat az új felhasználóra cseréli.
sudo htpasswd -B /etc/go/passwd_auth gouser1
Most, hogy létrehoztuk a jelszófájlt, nyissa meg újra a GoCD irányítópultját. Navigáljon a " Admin >> Security >> Authorization Configurations
" elemre a felső navigációs sávról. Kattintson a Add
gombra, és adjon meg bármilyen azonosítót. Válassza a " Password File Authentication Plugin for GoCD
" beépülő modul azonosítóját, és irányítsa a jelszófájl elérési útját. Most kattintson a " Check Connection
" gombra annak ellenőrzéséhez, hogy a GoCD tudja-e használni a jelszófájlt a hitelesítéshez.

Végül mentse el a hitelesítési módszert. Töltse be újra az irányítópultot, és az automatikusan kijelentkezteti. Ekkor megjelenik egy bejelentkezési képernyő. Jelentkezzen be a korábban létrehozott hitelesítő adatokkal.
A rendszergazda felhasználót manuálisan kell előléptetnie, ellenkező esetben minden felhasználó rendszergazdai jogosultsággal rendelkezik. Navigáljon a " Admin >> User Summary
" elemre a felső navigációs sávról.
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.

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
Megjegyzés : A Let's Encrypt CA-tól tanúsítványok beszerzéséhez a tartományt, amelyhez a tanúsítványokat elő kell állítani, a szerver felé kell mutatni. Ha nem, hajtsa végre a szükséges módosításokat a tartomány DNS-rekordjain, és várja meg, amíg a DNS továbbterjed, mielőtt ismét kérelmet küldene. A Certbot a tanúsítványok kiadása előtt ellenőrzi a tartományi hatóságot.
Hozza létre az SSL-tanúsítványokat.
sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com
A generált tanúsítványok valószínűleg a következő helyen lesznek tárolva /etc/letsencrypt/live/gocd.example.com/
. Az SSL-tanúsítvány a következőként fullchain.pem
, a magánkulcs pedig néven lesz tárolva privkey.pem
.
Az Encrypt tanúsítványok 90 napon belül lejárnak, ezért ajánlott a tanúsítványok automatikus megújítását beállítani cron jobokkal.
Nyissa meg a cron feladatfájlt.
sudo crontab -e
Adja hozzá a következő sort a fájl végéhez.
30 5 * * * /usr/bin/certbot renew --quiet
A fenti cron-feladat minden nap 5:30-kor fog futni. Ha a tanúsítvány lejár, az automatikusan megújul.
Hozzon létre egy új konfigurációs fájlt a GoCD webes felületéhez.
sudo nano /etc/nginx/sites-available/gocd
Töltse fel a fájlt.
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;
}
}
Aktiválja a konfigurációs fájlt.
sudo ln -s /etc/nginx/sites-available/gocd /etc/nginx/sites-enabled/gocd
Indítsa újra az Nginx webszervert a konfiguráció módosításának végrehajtásához.
sudo systemctl restart nginx
Mostantól elérheti a GoCD irányítópultját a következő címen: https://gocd.example.com
. Jelentkezzen be az irányítópultra a rendszergazdai hitelesítő adatokkal, és navigáljon a " Admin >> Server Configuration
" elemre a felső navigációs sávról.

Állítsa a " Site URL
" és a " Secure Site URL
" értékét https://gocd.example.com
.
A GoCD Agent telepítése
A GoCD folyamatos integrációs környezetben a GoCD ügynökök azok a dolgozók, akik felelősek az összes feladat végrehajtásáért. Amikor a rendszer változást észlel a forrásban, a folyamat aktiválódik, és a feladatok végrehajtásra hozzárendelődnek a rendelkezésre álló dolgozókhoz. Az ügynök ezután végrehajtja a feladatot, és a végrehajtás után jelenti a végső állapotot.
A folyamat futtatásához legalább egy ügynököt be kell állítani. Folytassa a GoCD-ügynök telepítésével a GoCD-kiszolgálón.
Mivel a GoCD tárolót már importáltuk a szerverre, közvetlenül telepíthetjük a Go Agentet.
sudo apt install -y go-agent
Most indítsa el a GoCD-kiszolgálót, és engedélyezze, hogy automatikusan elinduljon a rendszerindításkor.
sudo systemctl start go-agent
sudo systemctl enable go-agent
A localhost-on futó GoCD-ügynök észlelésekor automatikusan engedélyezve van.