Skalowanie wdrożeń serwera Jenkins w celu spełnienia wymagań przy użyciu agentów maszyn wirtualnych platformy AzureScale your Jenkins deployments to meet demand with Azure VM agents

W tym samouczku pokazano, jak używać wtyczki agentów maszyn wirtualnych platformy Azure narzędzia Jenkins w celu dodania pojemności na żądanie na przykładzie maszyn wirtualnych z systemem Linux działających na platformie Azure.This tutorial shows how to use the Jenkins Azure VM Agents plugin to add on-demand capacity with Linux virtual machines running in Azure.

W tym samouczku wykonasz następujące czynności:In this tutorial, you will:

  • Instalowanie wtyczki agentów maszyn wirtualnych platformy AzureInstall the Azure VM Agents plugin
  • Konfigurowanie wtyczki w celu utworzenia zasobów w ramach subskrypcji platformy AzureConfigure the plugin to create resources in your Azure subscription
  • Ustawianie zasobów obliczeniowych dostępnych dla każdego agentaSet the compute resources available to each agent
  • Ustawianie systemu operacyjnego i narzędzi zainstalowanych na każdym agencieSet the operating system and tools installed on each agent
  • Tworzenie nowego zadania freestyle usługi JenkinsCreate a new Jenkins freestyle job
  • Uruchamianie zadania na agencie maszyny wirtualnej platformy AzureRun the job on an Azure VM agent

Wymagania wstępnePrerequisites

  • Subskrypcja platformy AzureAn Azure subscription
  • Serwer główny Jenkins.A Jenkins master server. Jeśli nie masz serwera głównego, przejrzyj samouczek Szybki start, aby skonfigurować taki serwer na platformie Azure.If you don't have one, view the quickstart to set up one in Azure.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.If you don't have an Azure subscription, create a free account before you begin.

Instalowanie wtyczki agentów maszyn wirtualnych platformy AzureInstall Azure VM Agents plugin

Porada

Jeśli usługa Jenkins została wdrożona na platformie Azure przy użyciu szablonu rozwiązania, wtyczka agentów maszyn wirtualnych platformy Azure jest już zainstalowana.If you deployed Jenkins on Azure using the solution template, the Azure VM Agent plugin is already installed.

  1. Na pulpicie nawigacyjnym narzędzia Jenkins wybierz pozycję Manage Jenkins (Zarządzaj narzędziem Jenkins), a następnie wybierz pozycję Manage Plugins (Zarządzaj wtyczkami).From the Jenkins dashboard, select Manage Jenkins, then select Manage Plugins.
  2. Wybierz kartę Available (Dostępne), a następnie wyszukaj Azure VM Agents (Agenci maszyn wirtualnych platformy Azure).Select the Available tab, then search for Azure VM Agents. Zaznacz pole wyboru obok wpisu dla wtyczki, a następnie wybierz pozycję Install without restart (Instaluj bez ponownego uruchamiania) w dolnej części pulpitu nawigacyjnego.Select the checkbox next to the entry for the plugin and select Install without restart from the bottom of the dashboard.

Konfigurowanie wtyczki agentów maszyn wirtualnych platformy AzureConfigure the Azure VM Agents plugin

  1. Na pulpicie nawigacyjnym narzędzia Jenkins wybierz pozycję Manage Jenkins (Zarządzaj narzędziem Jenkins), a następnie pozycję Configure System (Konfiguruj system).From the Jenkins dashboard, select Manage Jenkins, then Configure System.

  2. Przewiń ekran do dolnej części strony i znajdź sekcję Cloud (Chmura) z listą rozwijaną Add new cloud (Dodaj nową chmurę) i wybierz z niej polecenie Microsoft Azure VM Agents (Agenci maszyn wirtualnych platformy Microsoft Azure).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. Wybierz istniejącą jednostkę usługi z listy rozwijanej Add (Dodaj) w sekcji Azure Credentials (Poświadczenia platformy Azure).Select an existing service principal from Add drop-down in the Azure Credentials section. Jeśli na liście nie ma żadnej pozycji, wykonaj następujące kroki, aby utworzyć jednostkę usługi dla konta platformy Azure i dodać ją do konfiguracji usługi Jenkins: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. Wybierz pozycję Add (Dodaj) obok sekcji Azure Credentials (Poświadczenia platformy Azure) i wybierz pozycję Jenkins.Select Add next to Azure Credentials and choose Jenkins.
    b.b. W oknie dialogowym Add Credentials (Dodawanie poświadczeń) wybierz pozycję Microsoft Azure Service Principal (Jednostka usługi Microsoft Azure) z listy rozwijanej Kind (Rodzaj).In the Add Credentials dialog, select Microsoft Azure Service Principal from the Kind drop-down.
    d.c. Utwórz jednostkę usługi Active Directory za pomocą wiersza polecenia platformy Azure lub usługi Cloud Shell.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. Wprowadź poświadczenia jednostki usługi w oknie dialogowym Add credentials (Dodawanie poświadczeń).Enter the credentials from the service principal into the Add credentials dialog. Jeśli nie znasz Identyfikatora subskrypcji platformy Azure, możesz go uzyskać za pomocą zapytania interfejsu wiersza polecenia: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"
           }
    

    Ukończona jednostka usługi powinna używać pola id dla identyfikatora subskrypcji, wartości appId dla identyfikatora klienta, wartości password dla klucza tajnego klienta i wartości tenant dla identyfikatora dzierżawy.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. Wybierz pozycję Add (Dodaj) w celu dodania jednostki usługi, a następnie skonfiguruj wtyczkę, aby używała nowo utworzonego poświadczenia.Select Add to add the service principal and then configure the plugin to use the newly created credential.

    Konfigurowanie jednostki usługi platformy Azure

  4. W sekcji Resource Group Name (Nazwa grupy zasobów) pozostaw zaznaczoną opcję Create new (Utwórz nową) i wprowadź nazwę myJenkinsAgentGroup.In the Resource Group Name section, leave Create new selected and enter myJenkinsAgentGroup.

  5. Wybierz pozycję Verify configuration (Sprawdź konfigurację), aby nawiązać połączenie z platformą Azure w celu przetestowania ustawień profilu.Select Verify configuration to connect to Azure to test the profile settings.

  6. Wybierz pozycję Apply (Zastosuj), aby zaktualizować konfigurację wtyczki.Select Apply to update the plugin configuration.

Konfigurowanie zasobów agentaConfigure agent resources

Skonfiguruj szablon używany do definiowania agenta maszyny wirtualnej platformy Azure.Configure a template for use to define an Azure VM agent. Ten szablon definiuje zasoby obliczeniowe, które ma każdy agent po utworzeniu.This template defines the compute resources each agent has when created.

  1. Wybierz pozycję Add (Dodaj) obok pozycji Add Azure Virtual Machine Template (Dodaj szablon maszyny wirtualnej platformy Azure).Select Add next to Add Azure Virtual Machine Template.

  2. Wprowadź defaulttemplate w polu Name (Nazwa).Enter defaulttemplate for the Name

  3. Wprowadź ubuntu w polu Label (Etykieta).Enter ubuntu for the Label

  4. Wybierz żądany region świadczenia usługi Azure z pola kombi.Select the desired Azure region from the combo box.

  5. Wybierz pozycję VM size (Rozmiar maszyny wirtualnej) z listy rozwijanej w obszarze Virtual Machine Size (Rozmiar maszyny wirtualnej).Select a VM size from the drop-down under Virtual Machine Size. Rozmiar ogólnego przeznaczenia Standard_DS1_v2 wystarczy na potrzeby tego samouczka.A general-purpose Standard_DS1_v2 size is fine for this tutorial.

  6. Pozostaw dla opcji Retention time (Czas przechowywania) wartość 60.Leave the Retention time at 60. To ustawienie określa liczbę minut, po jakiej usługa Jenkins cofnie przydział dla bezczynnych agentów.This setting defines the number of minutes Jenkins can wait before it deallocated idle agents. Wpisz 0, jeśli nie chcesz, aby bezczynne agenty były automatycznie usuwane.Specify 0 if you do not want idle agents to be removed automatically.

    Ogólna konfiguracja maszyny wirtualnej

Konfigurowanie systemu operacyjnego i narzędzi agentaConfigure agent operating system and tools

W sekcji Image Configuration (Konfiguracja obrazu) konfiguracji wtyczki wybierz opcję Ubuntu 16.04 LTS.In the Image Configuration section of the plugin configuration, select Ubuntu 16.04 LTS. Zaznacz pola wyboru obok pozycji Install Git (Latest) (Zainstaluj najnowszą wersję narzędzia Git), Install Maven (V3.5.0) (Zainstaluj narzędzie Maven 3.5.0) i Install Docker (Zainstaluj platformę Docker), aby zainstalować te narzędzia na nowo utworzonych agentach.Check the boxes next to Install Git (Latest), Install Maven (V3.5.0), and Install Docker to install these tools on newly created agents.

Konfigurowanie systemu operacyjnego i narzędzi maszyny wirtualnej

Wybierz pozycję Add (Dodaj) obok opcji Admin Credentials (Poświadczenia administratora), a następnie wybierz pozycję Jenkins.Select Add next to Admin Credentials, then select Jenkins. Wprowadź nazwę użytkownika i hasło używane do logowania się w agentach, upewniając się, że spełniają one zasady nazw użytkownika i haseł dla kont z uprawnieniami administracyjnymi na maszynach wirtualnych platformy Azure.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.

Wybierz pozycję Verify Template (Sprawdź szablon), aby sprawdzić konfigurację, a następnie wybierz pozycję Save (Zapisz), aby zapisać zmiany i powrócić do pulpitu nawigacyjnego usługi Jenkins.Select Verify Template to verify the configuration and then select Save to save your changes and return to the Jenkins dashboard.

Tworzenie zadania w usłudze JenkinsCreate a job in Jenkins

  1. Na pulpicie nawigacyjnym usługi Jenkins kliknij New Item (Nowy element).Within the Jenkins dashboard, click New Item.
  2. Wprowadź ciąg demoproject1 jako nazwę i wybierz pozycję Freestyle project (Projekt Freestyle), a następnie wybierz przycisk OK.Enter demoproject1 for the name and select Freestyle project, then select OK.
  3. Na karcie General (Ogólne) wybierz opcję Restrict where project can be run (Ogranicz miejsca uruchomienia projektu) i wpisz ubuntu w polu Label Expression (Wyrażenie etykiety).In the General tab, choose Restrict where project can be run and type ubuntu in Label Expression. Zostanie wyświetlony komunikat potwierdzający, że etykieta jest obsługiwana przez konfigurację chmury utworzoną w poprzednim kroku.You see a message confirming that the label is served by the cloud configuration created in the previous step. Konfigurowanie zadaniaSet up job
  4. Na karcie Source Code Management (Zarządzanie kodem źródłowym) wybierz pozycję Git i dodaj następujący adres URL w polu Repository URL (Adres URL repozytorium): 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. Na karcie Build (Kompilacja) wybierz pozycję Add build step (Dodaj krok kompilacji), a następnie pozycję Invoke top-level Maven targets (Wywołaj elementy docelowe najwyższego poziomu narzędzia Maven).In the Build tab, select Add build step, then Invoke top-level Maven targets. Wprowadź package w polu Goals (Cele).Enter package in the Goals field.
  6. Wybierz pozycję Save (Zapisz), aby zapisać definicję zadania.Select Save to save the job definition.

Tworzenie nowego zadania na agencie maszyny wirtualnej platformy AzureBuild the new job on an Azure VM agent

  1. Wróć do pulpitu nawigacyjnego usługi Jenkins.Go back to the Jenkins dashboard.
  2. Wybierz zadanie utworzone w poprzednim kroku, a następnie kliknij pozycję Build now (Kompiluj teraz).Select the job you created in the previous step, then click Build now. Nowa kompilacja jest umieszczana w kolejce, ale nie jest uruchamiana do czasu utworzenia agenta maszyny wirtualnej w ramach subskrypcji platformy Azure.A new build is queued, but does not start until an agent VM is created in your Azure subscription.
  3. Po ukończeniu kompilacji przejdź do obszaru Console output (Dane wyjściowe konsoli).Once the build is complete, go to Console output. Będzie widać, że kompilacja została wykonana zdalnie na agencie platformy Azure.You see that the build was performed remotely on an Azure agent.

Dane wyjściowe konsoli

Rozwiązywanie problemów z wtyczką narzędzia JenkinsTroubleshooting the Jenkins plugin

Jeśli napotkasz jakiekolwiek usterki we wtyczkach narzędzia Jenkins, prześlij zgłoszenie za pomocą narzędzia Jenkins JIRA dla określonego składnika.If you encounter any bugs with the Jenkins plugins, file an issue in the Jenkins JIRA for the specific component.

Następne krokiNext steps