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 CLI végrehajtásához szükséges Azure-hitelesítő adatok hozzáadása

  1. Keresse meg a Jenkins portált.

  2. A menüben válassza a Jenkins kezelése lehetőséget.

  3. Válassza a Hitelesítő adatok kezelése lehetőséget.

  4. Válassza ki a globális tartományt.

  5. Válassza a Hitelesítő adatok hozzáadása lehetőséget.

  6. 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.
  7. 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.

  1. A Jenkins irányítópultján válassza az Új elem lehetőséget.

  2. Nevezze el a feladatot a feladatnak, válassza a Folyamat lehetőséget, majd kattintson az OK gombra.

  3. 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
                '''
              }
            }
          }
        }
      }
    }
    
  4. Válassza a Build Now lehetőséget a feladat futtatásához.

  5. 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.

  6. 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:

  7. A feladat sikeres befejezése után vizsgálja meg a buildösszetevőket a nyilvános blob megnyitásával:

    1. Jelentkezzen be az Azure Portalra.
    2. Válassza a Storage lehetőséget.
    3. Válassza ki a Jenkinshez használt tárfiók nevét.
    4. Válassza a Tárolók lehetőséget.
    5. Válassza ki a myjob nevű tárolót a blobok listájában.
    6. A következő két fájlnak kell megjelennie: hello.txt és date.txt.
    7. Másolja ki bármelyik elem URL-címét, és illessze be a böngészőbe.
    8. 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.

  1. 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
              '''   
            }
          }
        }
      }
    }
    
  2. 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