Kurz: Použití Služby Azure Storage pro artefakty sestavení
Důležité
Mnoho služeb Azure má moduly plug-in Jenkinse. Některé z těchto modulů plug-in budou od 29. února 2024 mimo podporu. Azure CLI je aktuálně doporučený způsob integrace Jenkinse se službami Azure. Další informace najdete v článku Moduly plug-in Jenkins pro Azure.
Tento článek ukazuje, jak používat úložiště objektů blob jako úložiště artefaktů sestavení vytvořených řešením kontinuální integrace Jenkinse nebo jako zdroj souborů ke stažení, které se mají použít v procesu sestavení. Jedním ze scénářů, ve kterých najdete toto řešení užitečné, je, když kódujete v agilním vývojovém prostředí (pomocí Javy nebo jiných jazyků), sestavení běží na základě kontinuální integrace a potřebujete úložiště pro artefakty sestavení, abyste je mohli například sdílet s ostatními členy organizace, zákazníky nebo udržovat archiv. Dalším scénářem je situace, kdy samotná úloha sestavení vyžaduje další soubory, například závislosti ke stažení v rámci vstupu sestavení.
Požadavky
- Předplatné Azure: Pokud nemáte předplatné Azure, vytvořte si před zahájením bezplatný účet Azure.
- Server Jenkins: Pokud nemáte nainstalovaný server Jenkinse, vytvořte v Azure server Jenkinse.
- Azure CLI: Nainstalujte Azure CLI (verze 2.0.67 nebo vyšší) na server Jenkinse.
- Účet úložiště Azure: Pokud ještě účet úložiště nemáte, vytvořte účet úložiště.
Přidání přihlašovacích údajů Azure potřebných ke spuštění Azure CLI
Přejděte na portál Jenkins.
V nabídce vyberte Spravovat Jenkinse.
Vyberte Spravovat přihlašovací údaje.
Vyberte globální doménu.
Vyberte Přidat přihlašovací údaje.
Vyplňte požadovaná pole následujícím způsobem:
- Druh: Vyberte uživatelské jméno s heslem.
- Uživatelské jméno: Zadejte
appId
instanční objekt. - Heslo: Zadejte
password
instanční objekt. - ID: Zadejte identifikátor přihlašovacích údajů, například
azuresp
. - Popis: Volitelně můžete zahrnout smysluplný popis vašeho prostředí.
Vyberte OK a vytvořte přihlašovací údaje.
Vytvoření úlohy kanálu pro nahrání artefaktů sestavení
Následující kroky vás provedou vytvořením úlohy kanálu. Úloha kanálu vytvoří několik souborů a nahraje soubory do účtu úložiště pomocí Azure CLI.
Na řídicím panelu Jenkinse vyberte Nová položka.
Pojmenujte úlohu myjob, vyberte Kanál a pak vyberte OK.
V části Kanál konfigurace úlohy vyberte skript kanálu a vložte do skriptu následující. Upravte zástupné symboly tak, aby odpovídaly hodnotám vašeho prostředí.
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 ''' } } } } } }
Vyberte Sestavit a spusťte moje úlohy.
Zkontrolujte stav výstupu konzoly. Když akce po sestavení nahraje artefakty sestavení, stavové zprávy pro úložiště Azure se zapíšou do konzoly.
Pokud dojde k chybě podobné následující, znamená to, že potřebujete udělit přístup na úrovni kontejneru:
ValidationError: You do not have the required permissions needed to perform this operation.
Pokud se zobrazí tato chybová zpráva, projděte si následující články, které je potřeba vyřešit:Po úspěšném dokončení úlohy prozkoumejte artefakty sestavení otevřením veřejného objektu blob:
- Přihlaste se k portálu Azure.
- Vyberte Úložiště.
- Vyberte název účtu úložiště, který jste použili pro Jenkinse.
- Vyberte kontejnery.
- V seznamu objektů blob vyberte kontejner myjob s názvem myjob.
- Měly by se zobrazit následující dva soubory: hello.txt a date.txt.
- Zkopírujte adresu URL některé z těchto položek a vložte ji do prohlížeče.
- Zobrazí se textový soubor, který se nahrál jako artefakt sestavení.
Klíčové body:
- Názvy kontejnerů a názvy objektů blob jsou v úložišti Azure malá písmena (a rozlišují se malá a velká písmena).
Vytvoření úlohy kanálu ke stažení ze služby Azure Blob Storage
Následující kroky ukazují, jak nakonfigurovat úlohu kanálu pro stahování položek ze služby Azure Blob Storage.
V části Kanál konfigurace úlohy vyberte skript kanálu a vložte do skriptu následující příkaz. Upravte zástupné symboly tak, aby odpovídaly hodnotám vašeho prostředí.
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 ''' } } } } }
Po spuštění sestavení zkontrolujte výstup konzoly historie sestavení. Případně se můžete podívat na umístění pro stažení a zjistit, jestli se objekty blob, které jste očekávali, úspěšně stáhly.