Jenkins sürekli tümleştirme çözümüyle Azure depolama kullanmaUsing Azure Storage with a Jenkins continuous integration solution

Bu makalede, bir yapı işleminde kullanılacak bir Jenkins sürekli tümleştirme (CI) çözümü tarafından oluşturulan yapılar için bir havuz olarak ya da indirilebilir dosyaları için kaynak olarak Blob Depolama kullanma gösterilmektedir.This article illustrates how to use Blob storage as a repository of build artifacts created by a Jenkins continuous integration (CI) solution, or as a source of downloadable files to be used in a build process. Burada, bu çözüm faydalı bulabileceğiniz senaryoları biri olduğunda, Çevik Geliştirme ortamında (Java veya diğer diller kullanılarak) kodlamaya, derleme çalışıyor tabanlı üzerinde sürekli tümleştirme ve derleme yapıtları için bir depo gerekir böylece , örneğin, onları müşterilerinize, diğer kuruluşun üyeleriyle paylaşma veya bir arşiv tutmak.One of the scenarios where you would find this solution useful is when you're coding in an agile development environment (using Java or other languages), builds are running based on continuous integration, and you need a repository for your build artifacts, so that you could, for example, share them with other organization members, your customers, or maintain an archive. Diğer dosyalar giriş yapının bir parçası indirmek için örneğin, bağımlılıkları, derleme işi gerektirdiğinde, başka bir senaryodur.Another scenario is when your build job itself requires other files, for example, dependencies to download as part of the build input.

Jenkins CI, Microsoft'un sunduğu için Bu öğreticide, Azure depolama eklentisi kullanacaksınız.In this tutorial, you will be using the Azure Storage Plugin for Jenkins CI made available by Microsoft.

Jenkins genel bakışJenkins overview

Jenkins, kolayca kod değişikliklerini tümleştirmek geliştiricilere vererek bir yazılım projesi için sürekli tümleştirme sağlar ve derlemeler otomatik olarak ve sık, böylece geliştiricilerin üretkenliğini artırma üretti.Jenkins enables continuous integration of a software project by allowing developers to easily integrate their code changes and have builds produced automatically and frequently, thereby increasing the productivity of the developers. Yapılar tutulur ve derleme yapıtları için çeşitli depoları karşıya yüklenebilir.Builds are versioned, and build artifacts can be uploaded to various repositories. Bu makalede, derleme yapıtlarını bir deposu olarak Azure blob depolama kullanma gösterilmektedir.This article shows how to use Azure blob storage as the repository of the build artifacts. Ayrıca, Azure blob depolama alanından bağımlılıklarını karşıdan yükleme de gösterilir.It will also show how to download dependencies from Azure blob storage.

Jenkins hakkında daha fazla bilgi şu adreste bulunabilir: karşılamak Jenkins.More information about Jenkins can be found at Meet Jenkins.

Blob hizmeti kullanmanın avantajlarıBenefits of using the Blob service

Çevik Geliştirme derleme yapıtlarınızı barındırmak için Blob hizmeti kullanmanın avantajları şunlardır:Benefits of using the Blob service to host your agile development build artifacts include:

  • Yüksek kullanılabilirlik, yapılar ve/veya indirilebilir bağımlılıkları.High availability of your build artifacts and/or downloadable dependencies.
  • Jenkins CI çözümünüz derleme yapıtlarınızı yüklediğinde performans.Performance when your Jenkins CI solution uploads your build artifacts.
  • Müşteriler ve iş ortakları, derleme yapıtları yüklediğinizde performans.Performance when your customers and partners download your build artifacts.
  • Kullanıcı erişim ilkeleri, anonim erişim, sona erme tabanlı paylaşılan erişim imzası erişim, özel arasından seçim yapma olanağıyla üzerinden erişim, vb. denetler.Control over user access policies, with a choice between anonymous access, expiration-based shared access signature access, private access, etc.

ÖnkoşullarPrerequisites

  • Jenkins sürekli tümleştirme çözümü.A Jenkins continuous integration solution.

    Jenkins CI çözümü şu anda sahip değilseniz, aşağıdaki yöntemi kullanarak Jenkins CI çözümü çalıştırabilirsiniz:If you currently don't have a Jenkins CI solution, you can run a Jenkins CI solution using the following technique:

    1. Bir Java özellikli makinede gelen jenkins.war indirin https://jenkins-ci.org.On a Java-enabled machine, download jenkins.war from https://jenkins-ci.org.

    2. Bir komut jenkins.war içeren klasöre açılan isteminde çalıştırın:At a command prompt that is opened to the folder that contains jenkins.war, run:

      java -jar jenkins.war

    3. Tarayıcınızda açın http://localhost:8080/ yüklemek ve Azure depolama eklentisi yapılandırmak için kullanacağınız Jenkins panosunu açın.In your browser, open http://localhost:8080/ to open the Jenkins dashboard, which you will use to install and configure the Azure Storage plugin.

      Tipik bir Jenkins CI çözüm Jenkins war komut satırını çalıştıran, bir hizmet olarak çalıştırmak için ayarlanması ancak bu öğretici için yeterli olacaktır.While a typical Jenkins CI solution would be set up to run as a service, running the Jenkins war at the command line will be sufficient for this tutorial.

  • Bir Azure hesabı.An Azure account. Bir Azure hesabı için kaydolabilirsiniz https://www.azure.com.You can sign up for an Azure account at https://www.azure.com.

  • Bir Azure depolama hesabı.An Azure storage account. Bir depolama hesabınız yoksa, adımları kullanarak bir tane oluşturabilirsiniz depolama hesabı oluşturma.If you don't already have a storage account, you can create one using the steps at Create a Storage Account.

  • Jenkins CI çözümüne konusunda önerilir, ancak aşağıdaki içeriği Blob hizmeti için Jenkins CI deposu olarak kullanılırken gerekli olan adımları derleme yapıları göstermek için basit bir örneği kullanacağınız, gerekli değildir.Familiarity with the Jenkins CI solution is recommended but not required, as the following content will use a basic example to show you the steps needed when using the Blob service as a repository for Jenkins CI build artifacts.

Jenkins CI ile Blob hizmetini kullanmaHow to use the Blob service with Jenkins CI

Jenkins ile Blob hizmeti kullanmak için Azure depolama eklentisini yükleme, depolama hesabınızı kullanmak için eklentiyi yapılandırmak ve ardından derleme yapıtları depolama hesabınıza yükleyen bir derleme sonrası eylem oluşturmak gerekir.To use the Blob service with Jenkins, you'll need to install the Azure Storage plugin, configure the plugin to use your storage account, and then create a post-build action that uploads your build artifacts to your storage account. Aşağıdaki bölümlerde bu adımlar açıklanmaktadır.These steps are described in the following sections.

Azure depolama eklentisi yüklemeHow to install the Azure Storage plugin

  1. Jenkins panosunda seçin Jenkins'i Yönet.Within the Jenkins dashboard, select Manage Jenkins.
  2. İçinde Jenkins'i Yönet sayfasında Eklentileri Yönet.In the Manage Jenkins page, select Manage Plugins.
  3. Available (Kullanılabilir) sekmesini seçin.Select the Available tab.
  4. İçinde Yapıt karşıya yükleme yapabilen kullanıcıları bölümünde onay Microsoft Azure depolama eklentisi.In the Artifact Uploaders section, check Microsoft Azure Storage plugin.
  5. Şunlardan birini seçin yeniden yükleme veya hemen indirin ve yeniden başlatma işleminden sonra yükleme.Select either Install without restart or Download now and install after restart.
  6. Jenkins yeniden başlatın.Restart Jenkins.

Azure depolama eklentisi, depolama hesabınızı kullanacak şekilde yapılandırmaHow to configure the Azure Storage plugin to use your storage account

  1. Jenkins panosunda seçin Jenkins'i Yönet.Within the Jenkins dashboard, select Manage Jenkins.
  2. İçinde Jenkins'i Yönet sayfasında yapılandırma sistemi.In the Manage Jenkins page, select Configure System.
  3. İçinde Microsoft Azure depolama hesabı Yapılandırması bölümü:In the Microsoft Azure Storage Account Configuration section:
    1. Elde edebileceğiniz, depolama hesabı adı girin Azure portalı.Enter your storage account name, which you can obtain from the Azure Portal.
    2. Depolama hesabı anahtarınızı, gelen da elde edilebilir girin Azure portalı.Enter your storage account key, also obtainable from the Azure Portal.
    3. Varsayılan değer Blob Hizmeti uç noktası URL'si Azure genel Bulutu kullanıyorsanız.Use the default value for Blob Service Endpoint URL if you are using the global Azure cloud. Farklı Azure Bulutu kullanıyorsanız, belirtilen uç noktası kullanma Azure portalı depolama hesabınız için.If you are using a different Azure cloud, use the endpoint as specified in the Azure Portal for your storage account.
    4. Seçin depolama kimlik bilgilerini doğrulama depolama hesabınızı doğrulamak için.Select Validate storage credentials to validate your storage account.
    5. [İsteğe bağlı] Jenkins cı Seç kullandırılır istediğiniz ek depolama hesapları varsa daha fazla depolama hesapları ekleme.[Optional] If you have additional storage accounts that you want made available to your Jenkins CI, select Add more Storage Accounts.
    6. Seçin Kaydet ayarlarınızı kaydetmek için.Select Save to save your settings.

Derleme yapıtlarınızı depolama hesabınıza yükleyen bir derleme sonrası eylem oluşturmaHow to create a post-build action that uploads your build artifacts to your storage account

Eğitim amaçları için ilk birkaç dosya oluşturun ve dosyalarını depolama hesabınıza yüklemek için oluşturma sonrası eylem eklemek bir iş oluşturmanız gerekir.For instructional purposes, you first need to create a job that will create several files, and then add in the post-build action to upload the files to your storage account.

  1. Jenkins panosunda seçin yeni öğe.Within the Jenkins dashboard, select New Item.

  2. İş adı MyJobseçin yazılım serbest stil projeyive ardından Tamam.Name the job MyJob, select Build a free-style software project, and then select OK.

  3. İçinde derleme select iş Yapılandırması bölümünü derleme adımı Ekle seçip yürütme Windows toplu komutuyla.In the Build section of the job configuration, select Add build step and select Execute Windows batch command.

  4. İçinde komut, aşağıdaki komutları kullanın:In Command, use the following commands:

    md text
    cd text
    echo Hello Azure Storage from Jenkins > hello.txt
    date /t > date.txt
    time /t >> date.txt
    
  5. İçinde derleme sonrası eylemlerde select iş Yapılandırması bölümünü oluşturma sonrası eylem Ekle seçip Azure Blob depolama alanına yapıtları karşıya.In the Post-build Actions section of the job configuration, select Add post-build action and select Upload artifacts to Azure Blob storage.

  6. İçin depolama hesabı adı, kullanılacak depolama hesabını seçin.For Storage account name, select the storage account to use.

  7. İçin kapsayıcı adı, kapsayıcı adı belirtin.For Container name, specify the container name. (Derleme yapıtları karşıya yüklendiğinde zaten yoksa, bir kapsayıcı oluşturulur.) Ortam değişkenlerini kullanma, bu nedenle bu örnekte girin ${JOB_NAME} kapsayıcı adı.(The container will be created if it does not already exist when the build artifacts are uploaded.) You can use environment variables, so for this example enter ${JOB_NAME} as the container name.

    İpucuTip

    Aşağıda komut bölümü bir komut dosyası için girmiş olduğunuz yürütme Windows toplu komutuyla ortam değişkenlerini Jenkins tarafından tanınan bir bağlantıdır.Below the Command section where you entered a script for Execute Windows batch command is a link to the environment variables recognized by Jenkins. Ortam değişken adları ve açıklamaları öğrenmek için bu bağlantıyı seçin.Select that link to learn the environment variable names and descriptions. Gibi özel karakterler içeren ortam değişkenlerini BUILD_URL ortam değişkeni, bir kapsayıcı adı veya ortak sanal yol olarak izin verilmez.Environment variables that contain special characters, such as the BUILD_URL environment variable, are not allowed as a container name or common virtual path.

  8. Seçin yeni kapsayıcı genel hale varsayılan olarak bu örneğin.Select Make new container public by default for this example. (Özel kapsayıcınızı kullanmak isterseniz, bu makalenin kapsamı dışında olan erişime izin vermek için paylaşılan erişim imzası oluşturmanız gerekir.(If you want to use a private container, you'll need to create a shared access signature to allow access, which is beyond the scope of this article. Paylaşılan erişim imzaları hakkında daha fazla bilgi kullanarak paylaşılan erişim imzaları (SAS).)You can learn more about shared access signatures at Using Shared Access Signatures (SAS).)

  9. [İsteğe bağlı] Seçin karşıya yüklemeden önce temiz kapsayıcı derleme yapıtları karşıya önce içeriğini temizlenmesi için kapsayıcıyı istiyorsanız (kapsayıcı içeriğini temizlemek istemiyorsanız, işaretsiz bırakın).[Optional] Select Clean container before uploading if you want the container to be cleared of contents before build artifacts are uploaded (leave it unchecked if you do not want to clean the contents of the container).

  10. İçin yüklenecek yapıları listesi, girin text/*.txt.For List of Artifacts to upload, enter text/*.txt.

  11. İçin ortak sanal yol için karşıya yüklenen yapıtları, bu öğreticinin amaçları girin ${BUILD\_ID}/${BUILD\_NUMBER}.For Common virtual path for uploaded artifacts, for purposes of this tutorial, enter ${BUILD\_ID}/${BUILD\_NUMBER}.

  12. Seçin Kaydet ayarlarınızı kaydetmek için.Select Save to save your settings.

  13. Jenkins panosunda seçin artık yapı çalıştırılacak MyJob.In the Jenkins dashboard, select Build Now to run MyJob. Konsol çıktısı için durumu inceleyin.Examine the console output for status. Derleme yapıtları karşıya yüklemek derleme sonrası eylemi başlatıldığında, Azure depolama için bildirilen durum iletileri konsol çıkışında dahil edilir.Status messages for Azure storage will be included in the console output when the post-build action starts to upload build artifacts.

  14. İşin işlemin başarıyla tamamlanmasından sonra ortak blob açarak derleme yapıtları inceleyebilirsiniz.Upon successful completion of the job, you can examine the build artifacts by opening the public blob.

    1. Azure Portal’da oturum açın.Sign in to the Azure Portal.
    2. Depolama’yı seçin.Select Storage.
    3. Jenkins için kullanılan depolama hesabı adı seçin.Select the storage account name that you used for Jenkins.
    4. Seçin kapsayıcıları.Select Containers.
    5. Adlı kapsayıcıyı seçin myjob, Jenkins işi oluşturduğunuzda, size atanan iş adı küçük harfli sürümünü olduğu.Select the container named myjob, which is the lowercase version of the job name that you assigned when you created the Jenkins job. Kapsayıcı ve blob adları, küçük harf (ve büyük küçük harfe duyarlı) Azure depolama alanında.Container names and blob names are lowercase (and case-sensitive) in Azure storage. Adlı bir kapsayıcı için BLOB listesini içinde myjob, görmelisiniz hello.txt ve date.txt.Within the list of blobs for the container named myjob, you should see hello.txt and date.txt. Bu öğelerden birini URL'sini kopyalayın ve tarayıcınızda açın.Copy the URL for either of these items and open it in your browser. Karşıya yüklenen bir metin dosyası bir derleme yapıtı görürsünüz.You will see the text file that was uploaded as a build artifact.

Yapıtları Azure blob depolama alanına yükler. yalnızca bir derleme sonrası eylem iş başına oluşturulabilir.Only one post-build action that uploads artifacts to Azure blob storage can be created per job. Yapıtları Azure blob depolama alanına yüklemek için tek derleme sonrası eylem farklı dosya (joker karakterler dahil) ve dosyaların yollarını belirtebilirsiniz yüklenecek yapıları listesi ayırıcı olarak noktalı virgül kullanarak.The single post-build action to upload artifacts to Azure blob storage can specify different files (including wildcards) and paths to files within List of Artifacts to upload using a semi-colon as a separator. Örneğin, Jenkins yapı JAR dosyaları ve çalışma alanınızın TXT dosyaları üretir derleme klasörünü açın ve istediğiniz her ikisi de Azure blob depolama alanına yüklemek için aşağıdaki değeri kullanın yüklenecekyapılarılistesi seçeneği: build/\*.jar;build/\*.txt.For example, if your Jenkins build produces JAR files and TXT files in your workspace's build folder, and you want to upload both to Azure blob storage, use the following value for the List of Artifacts to upload option: build/\*.jar;build/\*.txt. Çift iki nokta üst üste söz dizimi içinde blob adı kullanmak için bir yol belirtmek için de kullanabilirsiniz.You can also use double-colon syntax to specify a path to use within the blob name. Jar dosyaları dışındaki kullanarak karşıya istiyorsanız, örneğin, ikili dosyaları blob yolu ve TXT dosyaları kullanarak karşıya bildirimler blob yolu kullanmak için aşağıdaki değeri listesi Yüklenecek yapıları seçeneği: build/\*.jar::binaries;build/\*.txt::notices.For example, if you want the JARs to get uploaded using binaries in the blob path and the TXT files to get uploaded using notices in the blob path, use the following value for the List of Artifacts to upload option: build/\*.jar::binaries;build/\*.txt::notices.

Azure blob Depolama'dan indirilen bir derleme adımı oluşturmaHow to create a build step that downloads from Azure blob storage

Yapınızda öğeleri dahil etmek istiyorsanız yararlı olan Azure blob depolama alanından öğeleri indirmek için bir derleme adımı yapılandırmak için aşağıdaki adımları gösterilmektedir.The following steps illustrate to configure a build step to download items from Azure blob storage, which is useful if you want to include items in your build. Bu düzeni kullanarak bir Azure blob depolamada kalıcı hale getirmek için isteyebileceğiniz jar dosyaları dışındaki örneğidir.An example of using this pattern is JARs that you might want to persist in Azure blob storage.

  1. İçinde derleme select iş Yapılandırması bölümünü derleme adımı Ekle seçip Azure Blob Depolama'dan indirme.In the Build section of the job configuration, select Add build step and select Download from Azure Blob storage.
  2. İçin depolama hesabı adı, kullanılacak depolama hesabını seçin.For Storage account name, select the storage account to use.
  3. İçin kapsayıcı adı, indirmek istediğiniz BLOB'ları içeren kapsayıcının adını belirtin.For Container name, specify the name of the container that has the blobs you want to download. Ortam değişkenlerini kullanabilirsiniz.You can use environment variables.
  4. İçin Blob adı, blob adı belirtin.For Blob name, specify the blob name. Ortam değişkenlerini kullanabilirsiniz.You can use environment variables. Ayrıca, blob adının ilk letter(s) belirttikten sonra bir joker karakter olarak bir yıldız işareti kullanabilirsiniz.Also, you can use an asterisk, as a wildcard after you specify the initial letter(s) of the blob name. Örneğin, proje\* tüm BLOB adları ile başlayıp belirtebilirdiniz proje.For example, project\* would specify all blobs whose names start with project.
  5. [İsteğe bağlı] İçin indirme yolu, Jenkins makine, Azure blob depolama alanından dosyaları indirmek istediğiniz yolu belirtin.[Optional] For Download path, specify the path on the Jenkins machine where you want to download files from Azure blob storage. Ortam değişkenlerini de kullanılabilir.Environment variables can also be used. (Bir değer belirtmezseniz indirme yolu, Azure blob depolama biriminden dosyaları işin çalışma alanına yüklenir.)(If you do not provide a value for Download path, the files from Azure blob storage will be downloaded to the job's workspace.)

Azure blob depolama alanından indirmek istediğiniz ek öğeler varsa, ek derleme adımları oluşturabilirsiniz.If you have additional items you want to download from Azure blob storage, you can create additional build steps.

Bir derlemeyi çalıştırdıktan sonra derleme geçmişi konsol çıkışı denetleyin ya da beklediğiniz blobları başarıyla yüklenmiş olup olmadığını görmek için indirme konumunda, bakın.After you run a build, you can check the build history console output, or look at your download location, to see whether the blobs you expected were successfully downloaded.

Blob hizmeti tarafından kullanılan bileşenlerComponents used by the Blob service

Bu bölümde, Blob hizmeti bileşenlerini genel bir bakış sağlar.This section provides an overview of the Blob service components.

  • Depolama hesabı: Tüm Azure depolama erişimi bir depolama hesabı üzerinden yapılır.Storage Account: All access to Azure Storage is done through a storage account. Bloblara erişmek için ad alanı en üst düzey bir depolama hesabıdır.A storage account is the highest level of the namespace for accessing blobs. Kendi toplam boyutu altında 100 TB olduğu sürece bir hesapta kapsayıcılar, sınırsız sayıda olabilir.An account can contain an unlimited number of containers, as long as their total size is under 100 TB.

  • kapsayıcı: Bir kapsayıcı, BLOB'ları kümesi bir gruplandırmasını sağlar.Container: A container provides a grouping of a set of blobs. Tüm bloblar bir kapsayıcıda olmalıdır.All blobs must be in a container. Bir hesapta sınırsız sayıda kapsayıcı olabilir.An account can contain an unlimited number of containers. Kapsayıcıda sınırsız sayıda blob depolanabilir.A container can store an unlimited number of blobs.

  • BLOB: Bir dosya herhangi bir türü ve boyutu.Blob: A file of any type and size. Azure Depolama'da depolanan BLOB'ları iki tür vardır: blok ve sayfa blobları.There are two types of blobs that can be stored in Azure Storage: block and page blobs. Çoğu dosya blok blobudur.Most files are block blobs. Tek bir blok blobu en fazla 200 GB boyutunda olabilir.A single block blob can be up to 200 GB in size. Bu öğreticide, blok blobları kullanılır.This tutorial uses block blobs. Bir dosyadaki bayt aralıkları sık değişiklik yapıldığında, sayfa blobları, başka bir blob türü, en fazla 1 TB boyut ve daha verimli olabilir.Page blobs, another blob type, can be up to 1 TB in size, and are more efficient when ranges of bytes in a file are modified frequently. BLOB'ları hakkında daha fazla bilgi için bkz: anlama blok Blobları, ekleme Blobları ve sayfa Blobları.For more information about blobs, see Understanding Block Blobs, Append Blobs, and Page Blobs.

  • URL biçimi: BLOB'ları şu URL biçimi kullanılarak adreslenebilir:URL format: Blobs are addressable using the following URL format:

    http://storageaccount.blob.core.windows.net/container_name/blob_name

    (Yukarıdaki biçimini genel Azure bulutuna uygular.(The format above applies to the global Azure cloud. Farklı Azure Bulutu kullanıyorsanız, uç nokta içinde kullanmak Azure portalı URL uç noktanızı belirlemek için.)If you are using a different Azure cloud, use the endpoint within the Azure Portal to determine your URL endpoint.)

    Yukarıdaki biçimde storageaccount depolama hesabınızın adını temsil eden container_name , kapsayıcının adını temsil eder ve blob_name sırasıyla, blob adını temsil eder.In the format above, storageaccount represents the name of your storage account, container_name represents the name of your container, and blob_name represents the name of your blob, respectively. Kapsayıcı adı içinde bir eğik ayrılmış birden çok yol olabilir /.Within the container name, you can have multiple paths, separated by a forward slash, /. Bu öğreticide kullanılan örnek kapsayıcı adı MyJob, ve ${yapı_kimliği} / ${yapı_numarası} bir URL'ye sahip blob kaynaklanan ortak sanal yol için kullanıldı aşağıdaki biçimdedir:The example container name used for this tutorial was MyJob, and ${BUILD_ID}/${BUILD_NUMBER} was used for the common virtual path, resulting in the blob having a URL of the following form:

    http://example.blob.core.windows.net/myjob/2014-04-14_23-57-00/1/hello.txt

Jenkins eklentisiyle ilgili sorunları gidermeTroubleshooting the Jenkins plugin

Jenkins eklentileriyle ilgili hatalarla karşılaşırsanız Jenkins JIRA sayfasında söz konusu bileşenle ilgili sorun bildirebilirsiniz.If you encounter any bugs with the Jenkins plugins, file an issue in the Jenkins JIRA for the specific component.

Sonraki adımlarNext steps

Daha fazla bilgi için bkz. Java geliştiricileri için Azure.For more information, visit Azure for Java developers.