Öğretici: Derleme yapıtları Depolama Azure Depolama'i kullanma
Önemli
Birçok Azure hizmeti Jenkins eklentilerine sahip. Bu eklentilerin bazıları 29 Şubat 2024'te destek olmayacaktır. Azure CLI, Jenkins'i Azure hizmetleriyle tümleştirin şu anda önerilen yoldur. Daha fazla bilgi için Azure için Jenkins eklentileri makalesine bakın.
Bu makalede, Bir Jenkins sürekli tümleştirme (CI) çözümü tarafından oluşturulan derleme yapıtları deposu olarak veya bir derleme sürecinde kullanılacak indirilebilir dosyaların kaynağı olarak Blob depolamanın nasıl kullanı gerektiği açıklanmıştır. Bu çözümün yararlı olduğu senaryolardan biri, çevik bir geliştirme ortamında kod kodlarken (Java veya diğer dilleri kullanarak), derlemelerin sürekli tümleştirmeye dayalı olarak çalışıyor ve derleme yapıtları için bir depoya ihtiyacınız olduğu için bunları diğer kuruluş üyeleriyle, müşterilerinizle paylaşabilirsiniz veya bir arşiv bulundurabilirsiniz. Başka bir senaryo ise derleme işnizin başka dosyalar (örneğin, derleme girişinin bir parçası olarak indirme bağımlılıkları) gerektirdiği durumdur.
Önkoşullar
- Azure aboneliği:Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun.
- Jenkins sunucusu:Yüklü bir Jenkins sunucunuz yoksa Azure'da bir Jenkins sunucusu oluşturun.
- Azure CLI:Jenkins sunucusuna Azure CLI (sürüm 2.0.67 veya daha yenisi) yükleyin.
- Azure depolama hesabı:Henüz bir depolama hesabınız yoksa bir depolama hesabı Depolama oluşturun.
Azure CLI'yi yürütmek için gereken Azure kimlik bilgilerini ekleme
Jenkins portalına gidin.
Menüden Jenkins'i Yönet'i seçin.
Kimlik Bilgilerini Yönet'i seçin.
Genel etki alanını seçin.
Kimlik Bilgileri Ekle'yi seçin.
Gerekli alanları aşağıdaki gibi doldurun:
- Tür:Parola ile Kullanıcı adı'ı seçin.
- Kullanıcıadı: Hizmet sorumlusun adını belirtin.
- Parola:Hizmet sorumlusu için belirtin.
- Kimlik:gibi bir kimlik bilgisi kimlik bilgisi kimliği belirtin.
- Açıklama:İsteğe bağlı olarak, ortamınız için anlamlı bir açıklama girin.
Kimlik bilgilerini oluşturmak için Tamam'ı seçin.
Derleme yapıtlarını karşıya yüklemek için işlem hattı işi oluşturma
Aşağıdaki adımlar, bir işlem hattı işi oluşturma konusunda size yol içerir. İşlem hattı işi birkaç dosya oluşturur ve Azure CLI kullanarak dosyaları depolama hesabınıza yükler.
Jenkins panosundan Yeni Öğe'yi seçin.
İşin adını myjob olarak girin,İşlem Hattı'ı veardından Tamam'ı seçin.
İş yapılandırmasının İşlem Hattı bölümünde İşlem hattı betiği'yi seçin ve aşağıdakini Betik'e yapıştırın. Yer tutucuları ortamınız için değerlerle eş olacak şekilde düzenleyin.
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 ''' } } } } } }Myjob'ı çalıştırmak için Şimdi Derleme'yi seçin.
Konsol çıkışını durum için inceleme. Derleme sonrası eylem derleme yapıtlarını karşıya yükledikten sonra Azure depolama için durum iletileri konsola yazılır.
Aşağıdakine benzer bir hatayla karşılaşırsanız kapsayıcı düzeyinde erişim izni verebilirsiniz: Bu hata iletisini alırsanız çözmek için aşağıdaki
ValidationError: You do not have the required permissions needed to perform this operation.makalelere bakın:İş başarıyla tamamlandıktan sonra, genel blobu açarak derleme yapıtlarını inceleme:
- Azure Portal’ında oturum açın.
- Depolama’yı seçin.
- Jenkins için kullanılan depolama hesabı adını seçin.
- Kapsayıcılar'ı seçin.
- Bloblar listesinde myjobadlı kapsayıcıyı seçin.
- Şu iki dosya görüyor gerekir: hello.txt ve date.txt.
- Bu öğelerden herhangi biri için URL'yi kopyalayın ve tarayıcınızda yapıştırın.
- Derleme yapıtı olarak yüklenen metin dosyasını görüyorsunuz.
Önemli noktalar:
- Azure depolamada kapsayıcı adları ve blob adları küçük harftir (ve büyük/küçük harfe duyarlıdır).
Azure Blob depolamadan indirilen bir işlem hattı Depolama
Aşağıdaki adımlarda, Azure Blob Depolama'dan öğeleri indirmek için bir işlem hattı işinin nasıl Depolama.
İş yapılandırmasının İşlem Hattı bölümünde İşlem hattı betiği'yi seçin ve betik bölümüne aşağıdakini yapıştırın. Yer tutucuları ortamınız için değerlerle eş olacak şekilde düzenleyin.
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 ''' } } } } }Derlemeyi çalıştırdıktan sonra derleme geçmişi konsol çıkışını kontrol edin. Alternatif olarak, istediğiniz blobların başarıyla indirilmiş olup olduğunu görmek için indirme konumunuza da bakabilirsiniz.