Oktatóanyag: Üzembe helyezés Linux rendszerű virtuális gépen a Jenkins és az Azure DevOps Services használatával
Folyamatos integráció (CI) és a folyamatos üzembe helyezés (CD) egy folyamatból, amellyel építheti, kiadhatja és üzembe helyezheti a kódot. Az Azure DevOps Services teljes funkcionalitású CI-/CD-automatizálási eszközöket biztosít az Azure-ban történő üzembe helyezéshez. A Jenkins egy olyan népszerű, harmadik féltől származó CI/CD szolgáltatást nyújtó, kiszolgálóalapú eszköz, amely CI/CD-automatizálást is biztosít. Az Azure DevOps Services és a Jenkins együttes használatával testre szabhatja, hogyan kézbesíti felhőalapú alkalmazását vagy szolgáltatását.
Ebben az oktatóanyagban a Jenkinst fogja használni Node.js-alapú webalkalmazás építésére. Ezután az Azure DevOps használatával üzembe helyezi azt
egy Linux rendszerű virtuális gépeket tartalmazó üzembehelyezési csoportban. Az alábbiak végrehajtásának módját ismerheti meg:
- Mintaalkalmazás letöltése.
- A Jenkins bővítményeinek konfigurálása.
- Jenkins Freestyle projekt konfigurálása a Node.js-hez.
- A Jenkins konfigurálása az Azure DevOps Services-el való integrációhoz.
- Jenkins szolgáltatási végpont létrehozása.
- Üzembe helyezési csoport létrehozása az Azure virtuális gépekhez.
- Hozzon létre egy Azure Pipelines kiadási folyamatot.
- Manuális és CI által kiváltott üzembe helyezések végrehajtása.
Előfeltételek
Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egy ingyenes Azure-fiókot .
Jenkins-kiszolgáló: Ha nincs telepítve Jenkins-kiszolgáló, hozzon létre egy Jenkins-kiszolgálót az Azure-ban.
Megjegyzés:
További információ: Csatlakozás az Azure DevOps Services-hez.
Telepítési célként egy Linux rendszerű virtuális gépre van szükség. További információért lásd: Linux rendszerű virtuális gépek létrehozása és kezelése az Azure CLI-vel.
Nyissa meg a virtuális géphez a 80-as a bejövő portot. További információ: Hozzon létre egy hálózati biztonsági csoportot az Azure Portal használatával.
Mintaalkalmazás letöltése
A telepítéshez szükséges egy Git-adattárban lévő alkalmazás. A jelen oktatóanyag esetében azt javasoljuk, hogy ezt a mintaalkalmazást használja, amely a Githubon érhető el. Ez az oktatóanyag tartalmaz egy szkriptet, amelyet a Node.js és egy alkalmazás telepítésére fog használni. Ha szeretne a saját adattárával dolgozni, konfigurálnia kell egy hasonló mintát.
Hozzon létre egy adattármásolatot az alkalmazáshoz, és jegyezze le a helyet (URL-címet) az oktatóanyag későbbi lépéseiben való felhasználáshoz. További információkat a Fork a repo (Adattármásolat készítése) témakörben talál.
Megjegyzés:
Az alkalmazás a Yeoman használatával lett létrehozva. Express-t bowert és gruntot használ. És rendelkezik néhány npm-csomaggal függőségként. A minta egy szkriptet is tartalmaz, amely beállítja az Nginx kiszolgálót, és üzembe helyezi az alkalmazást. A végrehajtása a virtuális gépeken történik. Pontosabban a szkript az alábbi műveleteket végzi:
- Telepíti a Node-ot, az Nginx kiszolgálót és a PM2-t.
- Konfigurálja az Nginx kiszolgálót és a PM2-t.
- Elindítja a Node alkalmazást.
A Jenkins beépülő moduljainak konfigurálása
Először két Jenkins beépülő modult kell konfigurálnia: NodeJS és VS Team Services Continuous Deployment.
- Nyissa meg a Jenkins-fiókját, és válassza a Manage Jenkins (Jenkins kezelése) lehetőséget.
- A Manage Jenkins (Jenkins kezelése) oldalon válassza a Manage Plugins (Beépülő modulok kezelése) lehetőséget.
- A lista szűrésével keresse meg a NodeJS beépülő modult, majd válassza az Install without restart (Telepítés újraindítás nélkül) lehetőséget.
- A lista szűrésével keresse meg a VS Team Services Continuous Deployment beépülő modult, és válassza az Install without restart (Telepítés újraindítás nélkül) lehetőséget.
- Lépjen vissza a Jenkins irányítópultjára, és válassza a Manage Jenkins (Jenkins kezelése) lehetőséget.
- Válassza a Global Tool Configuration (Globális eszköz konfigurációja) lehetőséget. Keresse meg a NodeJS elemet, és válassza a NodeJS installations (NodeJS-telepítések) lehetőséget.
- Válassza az Install automatically (Automatikus telepítés) lehetőséget, majd adja meg a Name (Név) értékét.
- Válassza a Mentés parancsot.
Jenkins Freestyle projekt konfigurálása a Node.js-hez
- Válassza a New Item (Új elem) lehetőséget. Adja meg az elem nevét.
- Válassza a Freestyle project lehetőséget. Kattintson az OK gombra.
- A Source Code Management (Forráskód kezelése) lapon válassza a Git lehetőséget, és adja meg annak az adattárnak és elágazásnak az adatait, amely az alkalmazás forráskódját tartalmazza.
- Válassza a Build Triggers (Build-aktiválók) lapon a Poll SCM lehetőséget, és adja meg a
H/03 * * * *
ütemtervet a Git-adattár változásainak három percenként történő ciklikus lekérdezéshez. - A Build Environment lapon válassza a Node &npm bin/ folder PATH lehetőséget, és válassza a NodeJS telepítési értékét. Hagyja meg az npmrc-fájl beállításaként a use system default (rendszer alapértelmezett beállításainak használata) értéket.
- A Build lapon válassza az Execute shell (Végrehajtási felület) lehetőséget, és adja meg az
npm install
parancsot, hogy minden függőség frissítése megtörténjen.
A Jenkins konfigurálása az Azure DevOps Services-el való integrációhoz.
Megjegyzés:
Ellenőrizze, hogy a következő lépésben használt személyes hozzáférési jogkivonat (PAT) tartalmazza-e a Kiadási (olvasási, írási, végrehajtási és kezelései) engedélyeket az Azure DevOps Services-ben.
Hozzon létre egy PAT-et az Azure DevOps Services-szervezetben, ha még nem rendelkezik ilyennel. A Jenkinsnek szüksége van erre az információra az Azure DevOps Services-szervezet eléréséhez. Ne feledje tárolni a jogkivonatadatokat a szakaszban következő lépésekhez.
A jogkivonat létrehozásához olvassa el a How do I create a personal access token for Azure DevOps Services? (Hogyan hozhatok létre személyes hozzáférési jogkivonatot az Azure DevOps Services-hez?) oldalt.
A Post-build Actions (Felépítés utáni műveletek) lapon válasza az Add post-build action (Felépítés utáni művelet hozzáadása) lehetőséget. Válassza az Archive the artifacts (Összetevők archiválása) lehetőséget.
A Files to archive (Archiválandó fájlok) beállításához adja meg a
**/*
értéket az összes fájl belefoglalásához.Egy másik művelet létrehozásához válassza az Add post-build action (Felépítés utáni művelet hozzáadása) lehetőséget.
Válassza a Trigger release in TFS/Team Services (Kiadás aktiválása a TFS/Team Services-ben) lehetőséget. Adja meg az Azure DevOps Services-szervezet URI-ját, például a https://{saját-szervezet-neve}.visualstudio.com címet.
Adja meg a projekt nevét.
Adjon nevet a kiadási folyamatnak. (Ezt a kiadási folyamatot később fogja létrehozni az Azure DevOps Services-ben.)
Hitelesítő adatok kiválasztása az Azure DevOps Serviceshez vagy az Azure DevOps Server-környezethez való csatlakozáshoz:
- Hagyja a Username (Felhasználónév) mezőt üresen, ha az Azure DevOps Services-t használja.
- Adjon meg egy felhasználónevet és jelszót, ha az Azure DevOps Server helyszíni verzióját használja.
Mentse a Jenkins-projektet.
Jenkins szolgáltatási végpont létrehozása
A szolgáltatási végpont lehetővé teszi, hogy az Azure DevOps Services csatlakozzon a Jenkinshez.
- Nyissa meg a Services (Szolgáltatások) lapot az Azure DevOps Services-ben, nyissa meg a New Service Endpoint (Új szolgáltatási végpont) listát, és válassza a Jenkins lehetőséget.
- Adja meg a kapcsolat nevét.
- Adja meg a Jenkins-kiszolgáló URL-címét, majd válassza ki a Nem megbízható SSL-tanúsítványok elfogadása lehetőséget. Példa URL-címre: http://{YourJenkinsURL}.westcentralus.cloudapp.azure.com.
- Adja meg a Jenkins-fiók felhasználónevét és jelszavát.
- Válassza a Kapcsolat ellenőrzése lehetőséget az adatok helyességének ellenőrzéséhez.
- Kattintson az OK gombra a szolgáltatásvégpont létrehozásához.
Üzembe helyezési csoport létrehozása Azure virtuális gépekhez
Szüksége van egy üzembe helyezési csoportra az Azure DevOps Services-ügynök regisztrálásához, hogy a kiadási folyamatot üzembe lehessen helyezni a virtuális gépen. Az üzembe helyezési csoportok megkönnyítik a célgépek logikai csoportjainak megadását az üzembe helyezéshez és a kívánt ügynök egyes gépeken történő telepítéséhez.
Megjegyzés:
A következő eljárásban nem mulassza el az előfeltételek telepítését, és ne futtassa a szkriptet sudo engedélyekkel.
- Nyissa meg a Build &Release Hub Kiadás lapját, nyissa meg az Üzembe helyezési csoportokat, és válassza az + Új lehetőséget.
- Adjon meg egy nevet a központi telepítési csoporthoz, és egy opcionális leírást. Válassza a Létrehozás parancsot.
- Válassza ki az üzembe helyezési cél virtuális gépének operációs rendszerét. Válassza például az Ubuntu 16.04+ lehetőséget.
- Válassza ki a Use a personal access token in the script for authentication (Személyes hozzáférési jogkivonat használata a szkriptben a hitelesítéséhez) elemet.
- Válassza a System prerequisites (Rendszer előfeltételei) hivatkozást. Telepítse az előfeltételeket az operációs rendszeréhez.
- Válassza a Copy script to clipboard (Szkript másolása a vágólapra) elemet a szkript másolásához.
- Jelentkezzen be az üzembe helyezési cél virtuális gépére, és futtassa a szkriptet. Ne futtassa a szkriptet a sudo engedélyekkel.
- A telepítés után a rendszer kéri az üzembe helyezési csoport címkéit. Fogadja el az alapértelmezett beállításokat.
- Az Azure DevOps Services-ben ellenőrizze az újonnan regisztrált virtuális gépet a Targets (Célok) szakaszban a Deployment Groups (Üzembehelyezési csoportok) alatt.
Azure Pipelines kiadási folyamat létrehozása
A kiadási folyamat azt a folyamatot határozza meg, amelyet az Azure Pipelines az alkalmazás üzembe helyezésére használ. Ebben a példában egy felületszkriptet fog végrehajtani.
Kiadási folyamat létrehozása az Azure Pipelinesban:
- Nyissa meg a Build & Release Hub Kiadás lapját, és válassza a Kiadási folyamat létrehozása lehetőséget.
- Válassza ki az Empty (Üres) sablont, hogy egy Empty process (Üres folyamat) legyen a kezdési folyamat.
- Az Artifacts (Összetevők) szakaszban jelölje ki a + Add Artifact (+ Összetevő hozzáadása) lehetőséget, és válassza a Jenkins elemet, mint Source type (Erőforrástípus). Válassza ki a Jenkins szolgáltatási végpont kapcsolatát. Ezután jelölje ki a Jenkins-forrásfeladatot, és válassza az Add (Hozzáadás) lehetőséget.
- Válassza a három pontot az Environment 1 (1. környezet) mellett. Válassza az Add deployment group phase (Üzembe helyezési csoport fázisának hozzáadása) lehetőséget.
- Válassza ki az üzembe helyezési csoportot.
- Válassza a + lehetőséget egy feladat Üzembe helyezési csoport fázishoz adásához.
- Válassza a Shell Script (Felületszkript) feladatot, majd az Add (Hozzáadás) elemet. A Shell Script (Felületszkript) feladat biztosítja az egyes kiszolgálókon való futtatáshoz a szkript konfigurációját a Node.js telepítéséhez és az alkalmazás elindításához.
- A Script Path (Szkript elérési útja) mezőben adja meg a $(System.DefaultWorkingDirectory)/Fabrikam-Node/deployscript.sh útvonalat.
- Válassza az Advanced (Speciális) elemet, majd engedélyezze a Specify Working Directory (Munkakönyvtár megadása) lehetőséget.
- A Working Directory (Munkakönyvtár) mezőben adja meg a $(System.DefaultWorkingDirectory)/Fabrikam-Node útvonalat.
- A kiadási folyamat neveként adja meg a buildhez a Jenkinsben a Post-build Actions (Felépítés utáni műveletek) lapon meghatározott nevet. A Jenkinsnek erre a névre lesz szüksége új kiadás aktiválásához a forrásösszetevők frissítésekor.
- Válassza a Save (Mentés), majd az OK gombot a kiadási folyamat mentéséhez.
Manuális és CI által kiváltott üzembe helyezések végrehajtása
- Válassza a + Release (+ Kiadás) elemet, majd a Create Release (Kiadás létrehozása) lehetőséget.
- A kiemelt legördülő listában válassza ki a befejezett buildet, majd válassza a Queue (Várólista) lehetőséget.
- Kattintson az előugró üzenetben a kiadási hivatkozásra. Például erre: „Release Release-1 has been created.”
- Nyissa meg a Logs (Naplók) lapot a kiadási konzol kimenetének megtekintéséhez.
- A böngészőben nyissa meg az üzembe helyezési csoporthoz hozzáadott egyik kiszolgáló URL-címét. Adja meg például a http://{your-server-ip-address} címet.
- Lépjen a Git-adattárba, és módosítsa a h1 fejléc tartalmát az app/views/index.jade fájlban egy módosított szövegre.
- Véglegesítse a módosításokat.
- Néhány perc elteltével megjelenik a létrehozott új kiadás az Azure DevOps Releases (Kiadások) lapján. Nyissa meg a kiadást az üzembe helyezési folyamat megtekintéséhez. Gratulálunk!
A Jenkins beépülő modul hibaelhárítása
Ha hibát tapasztal a Jenkins beépülő modulokkal kapcsolatban, küldjön egy hibát a Jenkins JIRA-ban az adott összetevőhöz.
További lépések
Ebben az oktatóanyagban automatizálta az alkalmazás Azure-ban történő üzembe helyezését a Jenkinst használva a buildhez, az Azure DevOps Services-t pedig a kiadáshoz. Megtanulta végrehajtani az alábbi műveleteket:
- Alkalmazás létrehozása a Jenkinsben.
- A Jenkins konfigurálása az Azure DevOps Services-el való integrációhoz.
- Üzembe helyezési csoport létrehozása az Azure virtuális gépekhez.
- Hozzon létre egy Azure Pipeline-t, amely konfigurálja a virtuális gépeket, és üzembe helyezi az alkalmazást.
Ha tudni szeretné, hogyan használhatja az Azure Pipelinest a buildelési és a kiadási lépésekhez, tekintse meg ezt a témakört.
Ha tudni szeretné, hogyan hozhat létre YAML-alapú CI/CD-folyamatot a virtuális gépeken való üzembe helyezéshez, folytassa a következő oktatóanyagban.
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: