Självstudie: Använda Azure Storage för byggartefakter
Viktigt
Många Azure-tjänster har Jenkins-plugin-program. Vissa av dessa plugin-program kommer att ha slut på support från och med 29 februari 2024. Azure CLI är det rekommenderade sättet att integrera Jenkins med Azure-tjänster. Mer information finns i artikeln Jenkins-plugin-program för Azure.
Den här artikeln illustrerar hur du använder Blob Storage som en lagringsplats för byggartefakter som skapats av en Lösning för kontinuerlig integrering i Jenkins (CI), eller som en källa till nedladdningsbara filer som ska användas i en byggprocess. Ett av de scenarier där du kan hitta den här lösningen är när du kodar i en flexibel utvecklingsmiljö (med Java eller andra språk), byggen körs baserat på kontinuerlig integrering och du behöver en lagringsplats för dina byggartefakter, så att du till exempel kan dela dem med andra organisationsmedlemmar, dina kunder eller underhålla ett arkiv. Ett annat scenario är när själva byggjobbet kräver andra filer, till exempel beroenden som ska laddas ned som en del av byggindata.
Förutsättningar
- Azure-prenumeration:Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt Azure-konto innan du börjar.
- Jenkins-server:Om du inte har en Jenkins-server installerad skapar du en Jenkins-server på Azure.
- Azure CLI:Installera Azure CLI (version 2.0.67 eller senare) på Jenkins-servern.
- Azure Storage-konto:Om du inte redan har ett lagringskonto skapar du ett Storage konto.
Lägg till Azure-autentiseringsuppgifter som krävs för att köra Azure CLI
Bläddra till Jenkins-portalen.
Välj Hantera Jenkins på menyn.
Välj Hantera autentiseringsuppgifter.
Välj den globala domänen.
Välj Lägg till autentiseringsuppgifter.
Fyll i de obligatoriska fälten på följande sätt:
- Typ:Välj Användarnamn med lösenord.
- Användarnamn:Ange för tjänstens huvudnamn.
- Lösenord:Ange för tjänstens huvudnamn.
- ID:Ange en autentiseringsidentifierare, till exempel .
- Beskrivning:Om du vill kan du ange en beskrivande beskrivning för din miljö.
Välj OK för att skapa autentiseringssuppgifter.
Skapa ett pipelinejobb för att ladda upp byggartefakter
Följande steg vägleder dig genom skapandet av ett pipelinejobb. Pipelinejobbet skapar flera filer och laddar upp filerna till ditt lagringskonto med hjälp av Azure CLI.
Välj Nytt objekt på Jenkins-instrumentpanelen.
Ge jobbet namnet myjob,välj Pipelineoch välj sedan OK.
I avsnittet Pipeline i jobbkonfigurationen väljer du Pipeline-skript och klistrar in följande i Skript. Redigera platshållarna så att de matchar värdena för din miljö.
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älj Skapa nu för att köra myjob.
Granska konsolens utdata för status. När åtgärden efter bygget laddar upp byggartefakter skrivs statusmeddelanden för Azure Storage till konsolen.
Om du stöter på ett fel som liknar följande innebär det att du måste bevilja åtkomst på containernivå: Om du får det här felmeddelandet kan du läsa följande artiklar för
ValidationError: You do not have the required permissions needed to perform this operation.att lösa problemet:När jobbet har slutförts undersöker du byggartefakter genom att öppna den offentliga bloben:
- Logga in på Azure-portalen.
- Välj Storage.
- Välj det lagringskontonamn som du använde för Jenkins.
- Välj Containrar.
- Välj containern med namnet myjobi listan över blobar.
- Du bör se följande två filer: hello.txt och date.txt.
- Kopiera URL:en för något av dessa objekt och klistra in den i webbläsaren.
- Du ser textfilen som laddades upp som en byggartefakt.
Viktiga punkter:
- Containernamn och blobnamn är gemener (och fallkänsliga) i Azure Storage.
Skapa ett pipelinejobb att ladda ned från Azure Blob Storage
Följande steg visar hur du konfigurerar ett pipelinejobb för att ladda ned objekt från Azure Blob Storage.
I avsnittet Pipeline i jobbkonfigurationen väljer du Pipeline-skript och klistrar in följande i Skript. Redigera platshållarna så att de matchar värdena för din miljö.
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 ''' } } } } }När du har kört en version kontrollerar du konsolens utdata för bygghistorik. Du kan också titta på nedladdningsplatsen för att se om de blobar som du förväntade dig har laddats ned.