Kurz: Použití Azure Storage pro artefakty sestavení
Důležité
Řada služeb Azure má moduly plug-in Jenkinse. Některé z těchto modulů plug-in nebudou k 29. únoru 2024 podporovat. Azure CLI je aktuálně doporučený způsob integrace Jenkinse se službami Azure. Další informace najdete v článku Moduly plug-in Jenkinse 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 (CI) Jenkinse nebo jako zdroj souborů ke stažení, které se mají použít v procesu sestavení. Jedním ze scénářů, ve kterých by pro vás bylo toto řešení užitečné, je psaní kódu 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ě artefaktů 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í jako součást vstupu sestavení.
Požadavky
- Předplatné Azure:Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
- Server Jenkins:Pokud nemáte nainstalovaný server Jenkins, vytvořte v Azure server Jenkins.
- Azure CLI:Nainstalujte Azure CLI (verze 2.0.67 nebo novější) na server Jenkins.
- Účet úložiště Azure:Pokud ještě nemáte účet úložiště, vytvořte účet Storage ú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 Jenkinse.
V nabídce vyberte Manage Jenkins (Spravovat Jenkinse).
Vyberte Spravovat přihlašovací údaje.
Vyberte globální doménu.
Vyberte Add Credentials (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 hodnotu objektu služby.
- Heslo:Zadejte hodnotu objektu služby.
- ID:Zadejte identifikátor přihlašovacích údajů, například .
- Popis:Volitelně můžete zadat smysluplný popis vašeho prostředí.
Výběrem OK vytvořte přihlašovací údaje.
Vytvoření úlohy kanálu pro nahrání artefaktů sestavení
Následující kroky vás provede vytvořením úlohy kanálu. Úloha kanálu vytvoří několik souborů a nahraje je do vašeho účtu úložiště pomocí Azure CLI.
Na řídicím panelu Jenkinse vyberte Nová položka.
Pojmete úlohu myjob,vyberte Pipeline (Kanál)a pak vyberte OK.
V části Kanál v konfiguraci úlohy vyberte Skript kanálu a vložte následující kód do skriptu. Upravte zástupné symboly tak, aby odpovídaly hodnotám pro vaše 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 Build Now (Sestavit) a spusťte myjob.
Zkontrolujte stav ve výstupu konzoly. Když akce po sestavení nahraje artefakty sestavení, stavové zprávy pro úložiště Azure se zapisou do konzoly.
Pokud narazíte na chybu podobnou následující, znamená to, že potřebujete udělit přístup na úrovni kontejneru: Pokud se zobrazí tato chybová zpráva, přečtěte si následující články a
ValidationError: You do not have the required permissions needed to perform this operation.vyřešte je:Po úspěšném dokončení úlohy prozkoumejte artefakty sestavení otevřením veřejného objektu blob:
- Přihlaste se k webu Azure Portal.
- Vyberte Storage.
- Vyberte název účtu úložiště, který jste použili pro Jenkinse.
- Vyberte Kontejnery.
- V seznamu objektů blob vyberte kontejner myjob.
- Měly by se zobrazit následující dva soubory: hello.txt adate.txt.
- Zkopírujte adresu URL pro některou z těchto položek a vložte ji do prohlížeče.
- Zobrazí se textový soubor nahraný jako artefakt sestavení.
Klíčové body:
- Názvy kontejnerů a objektů blob jsou v úložišti Azure malými písmeny (a rozlišují se malá a velká písmena).
Vytvoření úlohy kanálu ke stažení z azure blob Storage
Následující kroky ukazují, jak nakonfigurovat úlohu kanálu pro stahování položek z azure blob Storage.
V části Kanál v konfiguraci úlohy vyberte Skript kanálu a vložte do pole Skript následující kód. Upravte zástupné symboly tak, aby odpovídaly hodnotám pro vaše 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í. Můžete se také podívat na umístění pro stahování a zjistit, jestli se objekty blob, které jste očekávali, úspěšně stáhly.