Előfeltételek
Java telepítése
Telepítse a GoCD-t
Blokktároló konfigurálása
Tűzfal beállítása
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 CentOS 7 szerverpéldány legalább 1 GB RAM-mal.
- Egy sudo felhasználó .
- Egy domain név a szerverre mutatott.
Ebben az oktatóanyagban 192.168.1.1nyilvános IP-címként és gocd.example.coma 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 a CentOS 7 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. Ebben az oktatóanyagban a Java 8-at telepítjük az OpenJDK-ból.
Az OpenJDK könnyen telepíthető, mivel a csomag az alapértelmezett YUMtárolóban elérhető.
sudo yum -y install java-1.8.0-openjdk-devel
Ha a Java megfelelően van telepítve, akkor ellenőrizni tudja a verzióját.
java -version
A következő szöveghez hasonló kimenetet kap.
[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
Mielőtt továbblépnénk, be kell állítanunk a JAVA_HOMEés a JRE_HOMEkörnyezeti változókat. Keresse meg a Java futtatható fájl abszolút elérési útját a rendszerben.
readlink -f $(which java)
A következő szöveg jelenik meg a terminálján.
[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre/bin/java
Most állítsa be a JAVA_HOMEés a JRE_HOMEkörnyezeti változókat a Java könyvtár elérési útja szerint.
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre" >> ~/.bash_profile
Megjegyzés: Győződjön meg arról, hogy a rendszeren kapott Java elérési utat használja. Az ebben az oktatóanyagban használt elérési út megváltozhat, amikor megjelenik a Java 8 új verziója.
Futtassa a bash_profilefájlt.
source ~/.bash_profile
Most már futtathatja a echo $JAVA_HOMEparancsot, hogy megbizonyosodjon arról, hogy a környezeti változó be van állítva.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Telepítse a GoCD-t
A GoCD Java nyelven íródott, ezért a Java az egyetlen függőség a GoCD futtatásához. A GoCD a segítségével telepíthető YUM. Telepítse a hivatalos adattárat a rendszerbe.
sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo
Telepítse a GoCD szervert a rendszerébe.
sudo yum 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 további partíció vagy meghajtó használatát javasolja 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 "Tűzfal beállítá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 a 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
Tűzfal beállítása
Módosítsa a tűzfal konfigurációját, hogy engedélyezze a portokat 8153és 8154a tűzfalon keresztül. A port 8153figyeli a nem biztonságos kapcsolatokat, a port pedig 8154a biztonságos kapcsolatokat.
sudo firewall-cmd --zone=public --add-port=8153/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8154/tcp --permanent
sudo firewall-cmd --reload
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. Néhány hibaüzenet jelenik meg, amely azt mutatja, 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 biztonságos webhelyet 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.
![A GoCD telepítése és konfigurálása CentOS 7 rendszeren A GoCD telepítése és konfigurálása CentOS 7 rendszeren]()
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.
Ezenkívül beállíthatja a GoCD-t a régi műtermékek automatikus törlésére. Á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.
![A GoCD telepítése és konfigurálása CentOS 7 rendszeren A GoCD telepítése és konfigurálása CentOS 7 rendszeren]()
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 htpasswdparancs segítségével titkosított jelszófájlt tudjunk létrehozni.
sudo yum -y install httpd-tools
Hozzon létre egy jelszófájlt a htpasswdparanccsal 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 vehet fel, de az -copciót eltávolítva . Az -copció 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
Since, 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 an ID. Choose "Password File Authentication Plugin for GoCD" for 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.
![A GoCD telepítése és konfigurálása CentOS 7 rendszeren A GoCD telepítése és konfigurálása CentOS 7 rendszeren]()
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.
![A GoCD telepítése és konfigurálása CentOS 7 rendszeren A GoCD telepítése és konfigurálása CentOS 7 rendszeren]()
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 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 yum -y install nginx
Start Nginx and enable it to automatically start at boot time.
sudo systemctl start nginx
sudo systemctl enable nginx
Install Certbot, which is the client application for Let's Encrypt CA.
sudo yum -y install certbot
Before you can request certificates, you will need to allow ports 80 and 443, or standard HTTP and HTTPS services, through the firewall. Also, remove port 8153, which listens to the unsecured connections.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8153/tcp --permanent
sudo firewall-cmd --reload
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 /usr/share/nginx/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.
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.
Most módosítsa az Nginx alapértelmezett konfigurációs fájlját a default_serversor eltávolításához .
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Hozzon létre egy új konfigurációs fájlt a GoCD webes felületéhez.
sudo nano /etc/nginx/conf.d/gocd.conf
Töltse fel a fájlt.
upstream gocd {
server 127.0.0.1:8153;
}
server {
listen 80 default_server;
server_name gocd.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 default_server;
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;
}
}
Ellenőrizze, hogy vannak-e hibák az új konfigurációs fájlban.
sudo nginx -t
Ha a következő kimenetet látja, a konfiguráció hibamentes.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Ha valamilyen hibaüzenetet kapott, feltétlenül ellenőrizze az SSL-tanúsítványok elérési útját. 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 irányítópultjára a rendszergazdai hitelesítő adatokkal, és navigáljon a " Admin >> Server Configuration" címre a felső navigációs sávról.
![A GoCD telepítése és konfigurálása CentOS 7 rendszeren A GoCD telepítése és konfigurálása CentOS 7 rendszeren]()
Állítsa a " Site URL" és a " Secure Site URL" értékét https://gocd.example.com. A 8154portnak továbbra is elérhetőnek kell lennie a tűzfalon keresztül, hogy a távoli ügynökök a porton keresztül csatlakozhassanak a szerverhez 8154, ha nem tudnak csatlakozni a szabványos HTTPporton keresztül .
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 yum 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.