Oktatóanyag: Jenkins-környezet konfigurálása a CI/CD engedélyezéséhez Service Fabric-fürtön lévő Java-alkalmazás számára
Ez az oktatóanyag egy sorozat ötödik része. Azt mutatja be, hogy a Jenkins segítségével hogyan helyezheti üzembe egy alkalmazás frissítéseit. Ebben az oktatóanyagban a Service Fabric Jenkins beépülő modult egy GitHub-adattárral együtt használjuk, amely a Voting alkalmazást üzemelteti az alkalmazás fürtben való üzembe helyezéséhez.
A sorozat ötödik részében az alábbiakkal fog megismerkedni:
- Service Fabric Jenkins-tároló üzembe helyezése a számítógépen
- Jenkins-környezet előkészítése a Service Fabric-környezetben való üzembe helyezésre
- Az alkalmazás frissítése
Ebben az oktatóanyag-sorozatban az alábbiakkal ismerkedhet meg:
Előfeltételek
- Telepítse a Gitet a helyi számítógépre a Git letöltési oldaláról. A Gitre vonatkozó további információért lásd a Git dokumentációját.
- A Jenkins gyakorlati ismerete szükséges.
- Hozzon létre egy GitHub-fiókot. A GitHub működését is ismernie kell.
- Telepítse a Dockert a számítógépre.
A Service Fabric Jenkins-tároló rendszerképének letöltése és telepítése
A Jenkinst egy Service Fabric-fürtben vagy azon kívül is beállíthatja. Az alábbi utasítások a fürtön kívüli beállítást mutatják be egy Docker-rendszerkép használatával. Ha szeretné, a Jenkins előre konfigurált összeállítási környezetét is használhatja. A következő tárolórendszerképen előre telepítve van a Service Fabric beépülő modul, és azonnal használható a Service Fabricben.
Feljegyzés
Az alábbi példa egy nyilvános tárolórendszerképet kér le a Docker Hubról. Javasoljuk, hogy először a Docker Hub-fiókjával (docker login
) hitelesítse magát névtelen lekéréses kérés helyett. A nyilvános tartalmak használatakor a megbízhatóság javítása érdekében importálja és kezelje a rendszerképet egy privát Azure-tárolóregisztrációs adatbázisban. További információ a nyilvános rendszerképek használatával kapcsolatban.
Kérje le a Service Fabric Jenkins-tárolójának rendszerképét:
docker pull rapatchi/jenkins:v10
. A rendszerképhez előre telepítve van a Service Fabric Jenkins beépülő modulja.Futtassa a tárolórendszerképet, és adja meg azt a helyet, ahol az Azure tanúsítványait tárolja a csatlakoztatott helyi gépen.
docker run -itd -p 8080:8080 -v /service-fabric-java-quickstart/AzureCluster rapatchi/jenkins:v10
Kérje le a tárolórendszerkép-példány azonosítóját. A
docker ps –a
paranccsal az összes Docker-tárolót listázhatjaKérje le a Jenkins-példány jelszavát a következő parancs futtatásával:
docker exec [first-four-digits-of-container-ID] cat /var/jenkins_home/secrets/initialAdminPassword
Ha a tároló azonosítója 2d24a73b5964, használja a 2d24 értéket.
- Ez a jelszó szükséges ahhoz, hogy bejelentkezzen a Jenkins-irányítópultra a
http://<HOST-IP>:8080
portálról. - Az első bejelentkezés után létrehozhatja saját felhasználói fiókját, vagy maradhat a rendszergazdai fiók használata mellett.
- Ez a jelszó szükséges ahhoz, hogy bejelentkezzen a Jenkins-irányítópultra a
Állítsa be a GitHubot a Jenkins használatához az új SSH-kulcs létrehozásával és SSH-ügynökhöz adásával foglalkozó cikk lépéseit követve. Mivel a parancsok futtatása a Docker-tárolóból történik, kövesse a Linux-környezetre vonatkozó útmutatást.
Kövesse a GitHub utasításait az SSH-kulcs létrehozásához. Ezután adja hozzá az SSH-kulcsot ahhoz a GitHub-fiókhoz, amely az adattárat üzemelteti.
Futtassa a fenti hivatkozással elérhető parancsokat a Jenkins Docker-felületén (és ne a saját gazdagépén).
Ahhoz, hogy a saját gazdagépéről jelentkezhessen be a Jenkinsbe, használja a következő parancsokat:
docker exec -t -i [first-four-digits-of-container-ID] /bin/bash
Győződjön meg arról, hogy a fürt vagy gép, ahol a Jenkins-tároló rendszerképe fut, nyilvános IP-címmel rendelkezik. A nyilvános IP-cím lehetővé teszi, hogy a Jenkins-példány megkapja a GitHub értesítéseit.
Jenkins-feladatok létrehozása és konfigurálása
Először is, ha nincs olyan adattára, amellyel üzemeltetheti a Szavazó projektet a GitHubon, hozzon létre egyet. Az oktatóanyag a továbbiakban dev_test néven hivatkozik erre az adattárra.
Hozzon létre egy új elemet a Jenkins irányítópultján a
http://<HOST-IP>:8080
címen.Adjon nevet az elemnek (pl. MyJob). Válassza a free-style project (szabad projekt) lehetőséget, majd kattintson az OK gombra.
Nyissa meg a feladat oldalát, majd kattintson a Configure (Konfigurálás) elemre.
a. Az általános beállításokban jelölje be a GitHub project (GitHub-projekt) jelölőnégyzetet, és adja meg a GitHub-projekt URL-címét. Ez az URL-cím üzemelteti azt a Service Fabric Java-alkalmazást, amelyet integrálni szeretne a Jenkins folyamatos integrációs és üzembe helyezési (CI/CD) folyamatával (például:
https://github.com/testaccount/dev_test
).b. A Source Code Management (Forráskódkezelés) szakaszban válassza a Git elemet. Adja meg annak az adattárnak az URL-címét, amely a Jenkins CI/CD folyamatával integrálni kívánt Service Fabric Java-alkalmazást tartalmazza (például:
https://github.com/testaccount/dev_test.git
). Itt adhatja meg azt is, hogy melyik ágat kívánja létrehozni, például: /master.Adja meg a GitHub beállítását (amelyiken az adattár üzemel), így létrejöhet a kommunikáció a Jenkinsszel. Ehhez a következő lépések szükségesek:
a. Nyissa meg a GitHub-adattár oldalát. Lépjen a Settings (Beállítások) >Integrations and Services (Integrációk és szolgáltatások) részbe.
b. Válassza az Add Service (Szolgáltatás hozzáadása) elemet, írja be a Jenkins kifejezést, majd válassza ki a Jenkins-GitHub beépülő modult.
c. Adja meg a Jenkins-webhook URL-címét (alapértelmezés szerint ez a következő:
http://<PublicIPorFQDN>:8081/github-webhook/
). Kattintson az add/update service (Szolgáltatás hozzáadása/frissítése) elemre.d. A Jenkins-példányra egy tesztesemény érkezik. A GitHubban egy zöld pipa jelenik meg a webhook mellett, és a projekt létrejön.
A Build Triggers (Eseményindítók létrehozása) területen válassza ki a kívánt felépítési lehetőséget. Jelen esetben minden alkalommal szeretnénk elindítani egy felépítést, amikor valamilyen módosításra kerül sor az adattárban. Így a kiválasztandó lehetőség a következő: GitHub hook trigger for GITScm polling (GitHub beavatkozási pont eseményindító GITScm lekérdezés esetén).
A Build (Felépítés) szakaszban az Add build step (Felépítési lépés hozzáadása) legördülő listából válassza az Invoke Gradle Script (Gradle szkript meghívása) lehetőséget. A megjelenő vezérlőn nyissa meg a speciális menüt, és adja meg a fő felépítési szkript elérési útját az alkalmazásához. A rendszer felveszi a build.gradle elemet a megadott elérési útból, és annak megfelelően működik.
A Post-Build Actions (Felépítés utáni műveletek) legördülő menüből válassza a Deploy Service Fabric Project (Service Fabric-projekt üzembe helyezése) elemet. Itt meg kell adnia annak a fürtnek az adatait, ahová a Jenkins által lefordított Service Fabric-alkalmazást üzembe kívánja helyezni. A tanúsítvány elérési útja megegyezik a hellyel, ahová a kötet csatlakoztatva van (/tmp/myCerts).
Az üzembe helyezéshez szükséges egyéb adatokat is megadhat. Az alábbi képernyőképen áttekintheti, hogy milyen alkalmazásadatokat lehet megadni:
Feljegyzés
Ha a Service Fabricet használja a Jenkins-tároló rendszerképének üzembe helyezéséhez, a fürtnek meg kell egyeznie azzal, ahol a Jenkins-tárolóalkalmazás található.
Kattintson a Mentés gombra.
Meglévő alkalmazás frissítése
Frissítse a HTML címét a VotingApplication/VotingWebPkg/Code/wwwroot/index.html fájlban a Service Fabric Voting Sample v2 hozzáadásával.
<div ng-app="VotingApp" ng-controller="VotingAppController" ng-init="refresh()"> <div class="container-fluid"> <div class="row"> <div class="col-xs-8 col-xs-offset-2 text-center"> <h2>Service Fabric Voting Sample V2</h2> </div> </div> </div> </div>
Frissítse az ApplicationTypeVersion és a ServiceManifestVersion verziószámát 2.0.0 értékre a Voting/VotingApplication/ApplicationManifest.xml fájlban.
<?xml version="1.0" encoding="utf-8" standalone="no"?> <ApplicationManifest xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="VotingApplicationType" ApplicationTypeVersion="2.0.0"> <Description>Voting Application</Description> <ServiceManifestImport> <ServiceManifestRef ServiceManifestName="VotingWebPkg" ServiceManifestVersion="2.0.0"/> </ServiceManifestImport> <ServiceManifestImport> <ServiceManifestRef ServiceManifestName="VotingDataServicePkg" ServiceManifestVersion="1.0.0"/> </ServiceManifestImport> <DefaultServices> <Service Name="VotingWeb"> <StatelessService InstanceCount="1" ServiceTypeName="VotingWebType"> <SingletonPartition/> </StatelessService> </Service> <Service Name="VotingDataService"> <StatefulService MinReplicaSetSize="3" ServiceTypeName="VotingDataServiceType" TargetReplicaSetSize="3"> <UniformInt64Partition HighKey="9223372036854775807" LowKey="-9223372036854775808" PartitionCount="1"/> </StatefulService> </Service> </DefaultServices> </ApplicationManifest>
Frissítse a ServiceManifestVersion mezőjét és a CodePackageVersion mezőjét a Voting/VotingApplication/VotingWebPkg/ServiceManifest.xml fájlban a 2.0.0 értékre.
<CodePackage Name="Code" Version="2.0.0"> <EntryPoint> <ExeHost> <Program>entryPoint.sh</Program> </ExeHost> </EntryPoint> </CodePackage>
Az alkalmazásfrissítést végző Jenkins-feladat inicializálásához küldje el az új módosításokat a GitHub-adattárba.
A Service Fabric Explorerben kattintson az Applications (Alkalmazások) legördülő menüre. A frissítés állapotának megtekintéséhez kattintson az Upgrades in Progress (Folyamatban lévő frissítések) fülre.
Ha hozzáfér a http://< Host-IP>:8080-hez , a szavazati alkalmazás teljes funkcionalitással működik.
Következő lépések
Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:
- Service Fabric Jenkins-tároló üzembe helyezése a számítógépen
- Jenkins-környezet előkészítése a Service Fabric-környezetben való üzembe helyezésre
- Az alkalmazás frissítése
- Egyéb Java-minták megtekintése.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: