Talebi karşılamak için Jenkins dağıtımlarınızı Azure VM aracılarıyla ölçeklendirinScale your Jenkins deployments to meet demand with Azure VM agents

Bu öğreticide Jenkins Azure VM Agents eklentisini kullanarak Azure'da çalışan Linux sanal makineleriyle isteğe bağlı kapasite ekleme adımları gösterilmektedir.This tutorial shows how to use the Jenkins Azure VM Agents plugin to add on-demand capacity with Linux virtual machines running in Azure.

Bu öğreticide şunları yapacaksınız:In this tutorial, you will:

  • Azure VM Agents eklentisini yüklemeInstall the Azure VM Agents plugin
  • Eklentiyi yapılandırarak Azure aboneliğinizde gerekli kaynakları oluşturmaConfigure the plugin to create resources in your Azure subscription
  • Her aracı için kullanılabilir işlem kaynaklarını ayarlamaSet the compute resources available to each agent
  • Her aracıya yüklenen işletim sistemini ve araçları ayarlamaSet the operating system and tools installed on each agent
  • Yeni bir serbest tarzda Jenkins işi oluşturmaCreate a new Jenkins freestyle job
  • İşi bir Azure VM aracısında çalıştırmaRun the job on an Azure VM agent

ÖnkoşullarPrerequisites

  • Bir Azure aboneliğiAn Azure subscription
  • Bir Jenkins ana sunucusu.A Jenkins master server. Yoksa hızlı başlangıcı görüntüleyerek Azure'da bir tane ayarlayabilirsiniz.If you don't have one, view the quickstart to set up one in Azure.

Yoksa bir Azure aboneliği, oluşturun bir ücretsiz bir hesap başlamadan önce.If you don't have an Azure subscription, create a free account before you begin.

Azure VM Aracıları eklentisini yüklemeInstall Azure VM Agents plugin

İpucu

Jenkins'i Azure'a çözüm şablonunu kullanarak dağıttıysanız Azure VM Agents eklentisi zaten yüklüdür.If you deployed Jenkins on Azure using the solution template, the Azure VM Agent plugin is already installed.

  1. Jenkins panosundan Manage Jenkins (Jenkins’i Yönet) ve ardından Manage Plugins (Eklentileri Yönet) öğelerini seçin.From the Jenkins dashboard, select Manage Jenkins, then select Manage Plugins.
  2. Available (Kullanılabilir) sekmesini seçtikten sonra Azure VM Agents (Azure VM Aracıları) araması yapın.Select the Available tab, then search for Azure VM Agents. Eklentinin yanındaki onay kutusunu seçtikten sonra panonun en altında bulunan Install without restart (Yeniden başlatmadan yükle) öğesini seçin.Select the checkbox next to the entry for the plugin and select Install without restart from the bottom of the dashboard.

Azure VM Agents eklentisini yapılandırmaConfigure the Azure VM Agents plugin

  1. Jenkins panosundan Manage Jenkins (Jenkins'i Yönet) ve ardından Configure System (Sistemi Yapılandır) öğelerini seçin.From the Jenkins dashboard, select Manage Jenkins, then Configure System.

  2. Sayfanın en altına gidin ve Cloud (Bulut) bölümündeki Add new cloud (Yeni bulut ekle) açılan menüsünden Microsoft Azure VM Agents (Microsoft Azure VM Aracıları) öğesini seçin.Scroll to the bottom of the page and find the Cloud section with the Add new cloud dropdown and choose Microsoft Azure VM Agents.

  3. Azure Credentials (Azure Kimlik Bilgileri) bölümündeki Add (Ekle) açılan menüsünden var olan hizmet sorumlularından birini seçin.Select an existing service principal from Add drop-down in the Azure Credentials section. Liste boşsa aşağıdaki adımları izleyerek Azure hesabınız için bir hizmet sorumlusu oluşturun ve bunu Jenkins yapılandırmanıza ekleyin:If none is listed, perform the following steps to create a service principal for your Azure account and add it to your Jenkins configuration:

    a.a. Azure Credentials (Azure Kimlik Bilgileri) bölümünden Add (Ekle) öğesini ve ardından Jenkins'i seçin.Select Add next to Azure Credentials and choose Jenkins.
    b.b. Add Credentials (Kimlik Bilgilerini Ekle) iletişim kutusundaki Kind (Tür) açılan menüsünden Microsoft Azure Service Principal (Microsoft Azure Hizmet Sorumlusu) girişini seçin.In the Add Credentials dialog, select Microsoft Azure Service Principal from the Kind drop-down.
    c.c. Azure CLI veya Cloud Shell ile bir Active Directory hizmet sorumlusu oluşturun.Create an Active Directory Service principal from the Azure CLI or Cloud Shell.

    az ad sp create-for-rbac --name jenkins_sp --password secure_password
    
    {
        "appId": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBB",
        "displayName": "jenkins_sp",
        "name": "http://jenkins_sp",
        "password": "secure_password",
        "tenant": "CCCCCCCC-CCCC-CCCC-CCCCCCCCCCC"
    }
    

    d.d. Hizmet sorumlusunun kimlik bilgilerini Add credentials (Kimlik bilgilerini ekle) iletişim kutusuna girin.Enter the credentials from the service principal into the Add credentials dialog. Azure abonelik kimliğinizi bilmiyorsanız CLI ile sorgulayabilirsiniz:If you don't know your Azure subscription ID, you can query it from the CLI:

    az account list
    
       {
           "cloudName": "AzureCloud",
           "id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
           "isDefault": true,
           "name": "Visual Studio Enterprise",
           "state": "Enabled",
           "tenantId": "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCC",
           "user": {
           "name": "raisa@fabrikam.com",
           "type": "user"
           }
    

    Tamamlanmış hizmet sorumlusu Abonelik Kimliği için id alanını, İstemci Kimliği için appId değerini, Gizli Anahtar için password değerini, Kiracı Kimliği için de tenant değerini kullanmalıdır.The completed service principal should use the id field for Subscription ID, the appId value for Client ID, password for Client Secret, and tenant for Tenant ID. Add (Ekle) öğesine tıklayarak hizmet sorumlusunu ekleyin ve eklentiyi yeni oluşturulan hizmet sorumlusunu kullanacak şekilde yapılandırın.Select Add to add the service principal and then configure the plugin to use the newly created credential.

    Azure hizmet sorumlusunu yapılandırma

  4. Resource Group Name (Kaynak Grubu Adı) bölümünde Create new (Yeni oluştur) değerini bırakın ve myJenkinsAgentGroup yazın.In the Resource Group Name section, leave Create new selected and enter myJenkinsAgentGroup.

  5. Verify configuration (Yapılandırmayı doğrula) bağlantısını seçerek profil ayarlarını test etmek için Azure'a bağlanın.Select Verify configuration to connect to Azure to test the profile settings.

  6. Eklenti yapılandırmasını güncelleştirmek için Apply (Uygula) öğesini seçin.Select Apply to update the plugin configuration.

Aracı kaynaklarını yapılandırmaConfigure agent resources

Bir Azure VM aracısı tanımlamak için kullanılacak şablonu yapılandırın.Configure a template for use to define an Azure VM agent. Bu şablon, yeni oluşturulan her aracıda bulunacak işlem kaynaklarını tanımlar.This template defines the compute resources each agent has when created.

  1. Add Azure Virtual Machine Template (Azure Sanal Makine Şablonu Ekle) bölümündeki Add (Ekle) öğesini seçin.Select Add next to Add Azure Virtual Machine Template.

  2. Name (Ad) alanına defaulttemplate yazın.Enter defaulttemplate for the Name

  3. Label (Etiket) alanına ubuntu yazın.Enter ubuntu for the Label

  4. Birleşik giriş kutusundan istediğiniz Azure region (Azure bölgesi) seçimini yapın.Select the desired Azure region from the combo box.

  5. Virtual Machine Size (Sanal Makine Boyutu) bölümündeki VM size (VM boyutu) açılan menüsünden seçim yapın.Select a VM size from the drop-down under Virtual Machine Size. Bu öğretici için genel amaçlı Standard_DS1_v2 boyutu yeterli olacaktır.A general-purpose Standard_DS1_v2 size is fine for this tutorial.

  6. Retention time (Saklama süresi) değerini 60 olarak bırakın.Leave the Retention time at 60. Bu ayar, boştaki aracıları serbest bırakmadan önce Jenkins’in kaç dakika bekleyeceğini belirler.This setting defines the number of minutes Jenkins can wait before it deallocated idle agents. Boştaki aracıların otomatik olarak kaldırılmasını istemiyorsanız 0 değerini belirtin.Specify 0 if you do not want idle agents to be removed automatically.

    Genel VM yapılandırması

Aracı işletim sistemini ve araçları yapılandırmaConfigure agent operating system and tools

Eklenti yapılandırma ayarlarının Image Configuration (Görüntü Yapılandırması) bölümünde Ubuntu 16.04 LTS öğesini seçin.In the Image Configuration section of the plugin configuration, select Ubuntu 16.04 LTS. Install Git (Latest) (Git'i Yükle (En Son)), Install Maven (V3.5.0) (Maven'ı Yükle) ve Install Docker (Docker'ı Yükle) onay kutularını işaretleyerek bu araçların yeni oluşturulan aracılara yüklenmesini sağlayın.Check the boxes next to Install Git (Latest), Install Maven (V3.5.0), and Install Docker to install these tools on newly created agents.

VM işletim sistemini ve araçları yapılandırma

Admin Credentials (Yönetici Kimlik Bilgileri) bölümünde Add (Ekle) öğesini ve ardından Jenkins'i seçin.Select Add next to Admin Credentials, then select Jenkins. Aracılarda oturum açmak için kullanılacak bir kullanıcı adı ve parola girin ve bu bilgilerin Azure VM'leri üzerindeki yönetici hesaplarına yönelik kullanıcı adı ve parola ilkesine uygun olduğundan emin olun.Enter a username and password used to sign in to the agents, making sure they satisfy the username and password policy for administrative accounts on Azure VMs.

Yapılandırmayı doğrulamak için Verify Template (Şablonu Doğrula) öğesini seçin ve ardından Save (Kaydet) öğesini seçerek değişikliklerinizi kaydedip Jenkins panosuna dönün.Select Verify Template to verify the configuration and then select Save to save your changes and return to the Jenkins dashboard.

Jenkins içinde iş oluşturmaCreate a job in Jenkins

  1. Jenkins panosunda Yeni Öğe’ye tıklayın.Within the Jenkins dashboard, click New Item.
  2. Ad için demoproject1 yazın, Freestyle project (Serbest tarzda proje) ve ardından Tamam öğesini seçin.Enter demoproject1 for the name and select Freestyle project, then select OK.
  3. General (Genel) sekmesinde Restrict where project can be run (Projenin nerede çalıştırılabileceğini kısıtla) öğesini seçip Label Expression (Etiket İfadesi) alanına ubuntu yazın.In the General tab, choose Restrict where project can be run and type ubuntu in Label Expression. Etiketin bir önceki adımda oluşturulan buluta yapılandırması tarafında sunulduğunu onaylayan bir ileti göreceksiniz.You see a message confirming that the label is served by the cloud configuration created in the previous step. İşi ayarlamaSet up job
  4. Source Code Management (Kaynak Kod Yönetimi) sekmesinde Git'i seçin ve Repository URL (Depo URL'si) alanına şu URL'yi yazın: https://github.com/spring-projects/spring-petclinic.gitIn the Source Code Management tab, select Git and add the following URL into the Repository URL field: https://github.com/spring-projects/spring-petclinic.git
  5. Build (Derleme) sekmesinde Add build step (Derleme adımı ekle) ve ardından Invoke top-level Maven targets (Üst düzey Maven hedeflerini çağır) öğesini seçin.In the Build tab, select Add build step, then Invoke top-level Maven targets. Goals (Hedefler) alanına package yazın.Enter package in the Goals field.
  6. İş tanımını kaydetmek için Save (Kaydet) öğesini seçin.Select Save to save the job definition.

Yeni işi Azure VM aracısında derlemeBuild the new job on an Azure VM agent

  1. Jenkins panosuna geri dönün.Go back to the Jenkins dashboard.
  2. Bir önceki adımda oluşturduğunuz işi seçin ve Build now (Şimdi derle) öğesine tıklayın.Select the job you created in the previous step, then click Build now. Yeni bir derleme kuyruğa alınır ancak Azure aboneliğinizde bir aracı VM oluşturulana kadar başlatılmaz.A new build is queued, but does not start until an agent VM is created in your Azure subscription.
  3. Derleme tamamlandıktan sonra Konsol çıktısı’na gidin.Once the build is complete, go to Console output. Derlemenin Azure aracısı üzerinde uzaktan gerçekleştirildiğini görürsünüz.You see that the build was performed remotely on an Azure agent.

Konsol çıktısı

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