Oktatóanyag: Az Azure Storage használata buildelési összetevőkhöz
Fontos
Számos Azure-szolgáltatás rendelkezik Jenkins beépülő modulokkal. Ezen beépülő modulok némelyike 2024. február 29-étől nem támogatott. A Jenkins azure-szolgáltatásokkal való integrálásának jelenleg az Azure CLI az ajánlott módja. További információ: Jenkins beépülő modulok az Azure-hoz.
Ez a cikk bemutatja, hogyan használhatja a Blob Storage-t egy Jenkins folyamatos integrációs (CI) megoldás által létrehozott buildösszetevők adattáraként, vagy a buildelési folyamat során használandó letölthető fájlok forrásaként. Az egyik olyan forgatókönyv, amikor hasznosnak találná ezt a megoldást, ha agilis fejlesztési környezetben (Java vagy más nyelvek használatával) kódolt, a buildek folyamatos integráción alapulnak, és szüksége van egy adattárra a buildösszetevőkhöz, hogy például megoszthassa őket más szervezeti tagokkal, az ügyfelekkel, vagy megőrizhesse az archívumot. Egy másik forgatókönyv az, amikor maga a buildelési feladat más fájlokat, például függőségeket igényel a buildbemenet részeként.
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.
- Azure CLI: Telepítse az Azure CLI-t (2.0.67-es vagy újabb verzió) a Jenkins-kiszolgálón.
- Azure Storage-fiók: Ha még nincs tárfiókja, hozzon létre egy Tárfiókot.
Azure CLI végrehajtásához szükséges Azure-hitelesítő adatok hozzáadása
Keresse meg a Jenkins portált.
A menüben válassza a Jenkins kezelése lehetőséget.
Válassza a Hitelesítő adatok kezelése lehetőséget.
Válassza ki a globális tartományt.
Válassza a Hitelesítő adatok hozzáadása lehetőséget.
Töltse ki a szükséges mezőket az alábbiak szerint:
- Típus: Válassza ki a felhasználónevet jelszóval.
- Felhasználónév: Adja meg a
appId
szolgáltatásnév nevét. - Jelszó: Adja meg a
password
szolgáltatásnév azonosítóját. - Azonosító: Adjon meg egy hitelesítőadat-azonosítót, például
azuresp
. - Leírás: Igény szerint adjon meg egy érthető leírást a környezethez.
Válassza az OK gombot a hitelesítő adatok létrehozásához.
Folyamatfeladat létrehozása buildösszetevők feltöltéséhez
Az alábbi lépések végigvezetik a folyamatfeladatok létrehozásán. A folyamatfeladat több fájlt hoz létre, és feltölti a fájlokat a tárfiókba az Azure CLI használatával.
A Jenkins irányítópultján válassza az Új elem lehetőséget.
Nevezze el a feladatot a feladatnak, válassza a Folyamat lehetőséget, majd kattintson az OK gombra.
A feladatkonfiguráció Folyamat szakaszában válassza a Folyamat szkriptet, és illessze be a következőket a Szkriptbe. Szerkessze a helyőrzőket a környezet értékeinek megfelelően.
pipeline { agent any environment { AZURE_SUBSCRIPTION_ID='99999999-9999-9999-9999-999999999999' AZURE_TENANT_ID='99999999-9999-9999-9999-999999999999' AZURE_STORAGE_ACCOUNT='myStorageAccount' } stages { stage('Build') { steps { sh 'rm -rf *' sh 'mkdir text' sh 'echo Hello Azure Storage from Jenkins > ./text/hello.txt' sh 'date > ./text/date.txt' } post { success { withCredentials([usernamePassword(credentialsId: 'azuresp', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) { sh ''' echo $container_name # Login to Azure with ServicePrincipal az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID # Set default subscription az account set --subscription $AZURE_SUBSCRIPTION_ID # Execute upload to Azure az storage container create --account-name $AZURE_STORAGE_ACCOUNT --name $JOB_NAME --auth-mode login az storage blob upload-batch --destination ${JOB_NAME} --source ./text --account-name $AZURE_STORAGE_ACCOUNT # Logout from Azure az logout ''' } } } } } }
Válassza a Build Now lehetőséget a feladat futtatásához.
Vizsgálja meg a konzol kimenetét az állapot szempontjából. Amikor a build utáni művelet feltölti a buildelési összetevőket, az Azure Storage állapotüzenetei a konzolra lesznek írva.
Ha a következőhöz hasonló hibaüzenetet tapasztal, az azt jelenti, hogy hozzáférést kell adnia a tároló szintjén:
ValidationError: You do not have the required permissions needed to perform this operation.
Ha ezt a hibaüzenetet kapja, a következő cikkekben talál megoldást:A feladat sikeres befejezése után vizsgálja meg a buildösszetevőket a nyilvános blob megnyitásával:
- Jelentkezzen be az Azure Portalra.
- Válassza a Storage lehetőséget.
- Válassza ki a Jenkinshez használt tárfiók nevét.
- Válassza a Tárolók lehetőséget.
- Válassza ki a myjob nevű tárolót a blobok listájában.
- A következő két fájlnak kell megjelennie: hello.txt és date.txt.
- Másolja ki bármelyik elem URL-címét, és illessze be a böngészőbe.
- A buildösszetevőként feltöltött szövegfájl jelenik meg.
Főbb pontok:
- A tárolónevek és a blobnevek kisbetűsek (és megkülönböztetik a kis- és nagybetűket) az Azure Storage-ban.
Folyamatfeladat létrehozása az Azure Blob Storage-ból való letöltéshez
Az alábbi lépések bemutatják, hogyan konfigurálhat egy folyamatfeladatot elemek Azure Blob Storage-ból való letöltéséhez.
A feladatkonfiguráció Folyamat szakaszában válassza a Folyamat szkriptet, és illessze be a következőt a Szkriptbe. Szerkessze a helyőrzőket a környezet értékeinek megfelelően.
pipeline { agent any environment { AZURE_SUBSCRIPTION_ID='99999999-9999-9999-9999-999999999999' AZURE_TENANT_ID='99999999-9999-9999-9999-999999999999' AZURE_STORAGE_ACCOUNT='myStorageAccount' } stages { stage('Build') { steps { withCredentials([usernamePassword(credentialsId: 'azuresp', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) { sh ''' # Login to Azure with ServicePrincipal az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID # Set default subscription az account set --subscription $AZURE_SUBSCRIPTION_ID # Execute upload to Azure az storage blob download --account-name $AZURE_STORAGE_ACCOUNT --container-name myjob --name hello.txt --file ${WORKSPACE}/hello.txt --auth-mode login # Logout from Azure az logout ''' } } } } }
A build futtatása után ellenőrizze a buildelőzmény-konzol kimenetét. Másik lehetőségként a letöltési helyet is megnézheti, hogy a várt blobok sikeresen le lettek-e töltve.
További lépések
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: