Samouczek: Tworzenie serwera usługi Jenkins na maszynie wirtualnej systemu Azure linuxTutorial: Create a Jenkins server on an Azure Linux VM

W tym samouczku pokazano, jak zainstalować usługę Jenkins na maszynie wirtualnej systemu Linux Ubuntu za pomocą narzędzi i wtyczek skonfigurowanych do pracy z platformą Azure.This tutorial shows how to install Jenkins on an Ubuntu Linux VM with the tools and plug-ins configured to work with Azure. Po zakończeniu uzyskasz działający na platformie Azure serwer Jenkins umożliwiający skompilowanie przykładowej aplikacji Java z usługi GitHub.When you're finished, you have a Jenkins server running in Azure building a sample Java app from GitHub.

  • Instalowanie i konfigurowanie serwera usługi Jenkins na platformie AzureInstall and configure a Jenkins server on Azure
  • Uzyskiwanie dostępu do konsoli usługi Jenkins przy użyciu tunelu SSHAccess the Jenkins console using an SSH tunnel
  • Tworzenie projektu FreestyleCreate a Freestyle project
  • Skompiluj kod i zapakuj przykładową aplikacjęCompile the code and package the sample app

Wymagania wstępnePrerequisites

  • Subskrypcja platformy AzureAn Azure subscription
  • Dostęp do powłoki SSH w wierszu polecenia na komputerze (takiej jak powłoka Bash lub PuTTY)Access to SSH on your computer's command line (such as the Bash shell or PuTTY)

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.

Tworzenie maszyny wirtualnej z usługą Jenkins za pomocą szablonu rozwiązaniaCreate the Jenkins VM from the solution template

Usługa Jenkins obsługuje model, w którym serwer Jenkins deleguje pracę do jednego lub większej liczby agentów, co umożliwia pojedynczej instalacji usługi Jenkins hostowanie dużej liczby projektów lub udostępnianie różnych środowisk na potrzeby kompilacji lub testów.Jenkins supports a model where the Jenkins server delegates work to one or more agents to allow a single Jenkins installation to host a large number of projects or to provide different environments needed for builds or tests. Kroki opisane w tej sekcji przeprowadzają użytkownika przez proces instalowania i konfigurowania serwera Jenkins na platformie Azure.The steps in this section guide you through installing and configuring a Jenkins server on Azure.

  1. W przeglądarce otwórz obraz serwera Jenkins z witryny Azure Marketplace.In your browser, open the Azure Marketplace image for Jenkins.

  2. Wybierz pozycję POBIERZ TERAZ.Select GET IT NOW.

    Wybierz pozycję POBIERZ TERAZ, aby rozpocząć proces instalacji obrazu serwera Jenkins z witryny Marketplace.

  3. Po zapoznaniu się z cenami i warunkami wybierz pozycję Kontynuuj.After reviewing the pricing details and terms information, select Continue.

    Informacje o cenach i warunkach użytkowania dla obrazu serwera Jenkins w witrynie Marketplace.

  4. Wybierz pozycję Utwórz, aby skonfigurować serwer Jenkins w witrynie Azure Portal.Select Create to configure the Jenkins server in the Azure portal.

    Zainstaluj obraz serwera Jenkins z witryny Marketplace.

  5. Na karcie Basics (Ustawienia podstawowe) określ następujące wartości:In the Basics tab, specify the following values:

    • Name (Nazwa) — Wprowadź wartość Jenkins.Name - Enter Jenkins.

    • User name (Nazwa użytkownika) — Wprowadź nazwę użytkownika, która będzie stosowana podczas logowania się do maszyny wirtualnej, na której będzie działać serwer Jenkins.User name - Enter the user name to use when signing in to the virtual machine on which Jenkins is running. Nazwa użytkownika musi spełniać konkretne wymagania.The user name must meet specific requirements.

    • Authentication type (Typ uwierzytelniania) — Wybierz pozycję SSH public key (Klucz publiczny SSH).Authentication type - Select SSH public key.

    • SSH public key (Klucz publiczny SSH) — Skopiuj i wklej klucz publiczny RSA w formacie jednowierszowym (począwszy od ciągu ssh-rsa) lub w wielowierszowym formacie PEM.SSH public key - Copy and paste an RSA public key in single-line format (starting with ssh-rsa) or multi-line PEM format. Klucze SSH można wygenerować, używając narzędzia ssh-keygen w systemach Linux i macOS lub narzędzia PuTTYGen w systemie Windows.You can generate SSH keys using ssh-keygen on Linux and macOS, or PuTTYGen on Windows. Aby uzyskać więcej informacji na temat kluczy SSH i platformy Azure, zobacz artykuł Jak używać kluczy protokołu SSH w systemie Windows na platformie Azure.For more information about SSH keys and Azure, see the article, How to Use SSH keys with Windows on Azure.

    • Subscription (Subskrypcja) — Wybierz subskrypcję platformy Azure, w ramach której chcesz zainstalować serwer Jenkins.Subscription - Select the Azure subscription into which you want to install Jenkins.

    • Resource group (Grupa zasobów) — Wybierz pozycję Create new (Utwórz nową), a następnie wprowadź nazwę grupy zasobów, która służy jako kontener logiczny dla kolekcji zasobów tworzących instalację serwera Jenkins.Resource group - Select Create new, and enter a name for the resource group that serves as a logical container for the collection of resources that make up your Jenkins installation.

    • Location (Lokalizacja) — Wybierz pozycję East US (Wschodnie stany USA).Location - Select East US.

      Na karcie ustawień podstawowych wprowadź dane dotyczące uwierzytelnienia i grupy zasobów dla serwera Jenkins.

  6. Wybierz pozycję OK, aby przejść na kartę Additional Settings (Ustawienia dodatkowe).Select OK to proceed to the Additional Settings tab.

  7. Na karcie Additional Settings (Ustawienia dodatkowe) określ następujące wartości:In the Additional Settings tab, specify the following values:

    • Size (Rozmiar) — Wybierz odpowiednią opcję rozmiaru dla swojej maszyny wirtualnej serwera Jenkins.Size - Select the appropriate sizing option for your Jenkins virtual machine.

    • VM disk type (Typ dysku maszyny wirtualnej) — Wybierz opcję HDD (dysk twardy) lub SSD (dysk półprzewodnikowy), aby wskazać, jaki typ dysku pamięci masowej jest dozwolony dla maszyny wirtualnej serwera Jenkins.VM disk type - Specify either HDD (hard-disk drive) or SSD (solid-state drive) to indicate which storage disk type is allowed for the Jenkins virtual machine.

    • Virtual network (Sieć wirtualna) — (Opcjonalnie) Wybierz pozycję Virtual network (Sieć wirtualna), aby zmodyfikować ustawienia domyślne.Virtual network - (Optional) Select Virtual network to modify the default settings.

    • Subnets (Podsieci) — Wybierz opcję Subnets (Podsieci), sprawdź informacje i wybierz przycisk OK.Subnets - Select Subnets, verify the information, and select OK.

    • Public IP address (Publiczny adres IP) — Domyślna nazwa adresu IP to nazwa serwera Jenkins określona na poprzedniej stronie z sufiksem -IP.Public IP address - The IP address name defaults to the Jenkins name you specified in the previous page with a suffix of -IP. Możesz wybrać tę opcję, aby zmienić wartość domyślną.You can select the option to change that default.

    • Domain name label (Etykieta nazwy domeny) — Określ wartość dla w pełni kwalifikowanego adresu URL maszyny wirtualnej serwera Jenkins.Domain name label - Specify the value for the fully qualified URL to the Jenkins virtual machine.

    • Typ wydania jenkinsa — wybierz żądany LTS Weekly buildtyp Azure Verifiedwersji z opcji: , , lub .Jenkins release type - Select the desired release type from the options: LTS, Weekly build, or Azure Verified. Opcje LTS i Weekly build zostały objaśnione w artykule Jenkins LTS Release Line (Linia wydań LTS serwera Jenkins).The LTS and Weekly build options are explained in the article, Jenkins LTS Release Line. Opcja Azure Verified odnosi się do wersji LTS serwera Jenkins, która została zweryfikowana pod kątem działania na platformie Azure.The Azure Verified option refers to a Jenkins LTS version that has been verified to run on Azure.

    • JDK Type (Typ zestawu JDK) — Zestaw JDK do zainstalowania.JDK Type - JDK to be installed. Wartość domyślna to przetestowane przez Zulu, certyfikowane kompilacje OpenJDK.Default is Zulu tested, certified builds of OpenJDK.

      Na karcie Settings (Ustawienia) wprowadź ustawienia maszyny wirtualnej dla serwera Jenkins.

  8. Wybierz przycisk OK, aby przejść do karty Integration Settings (Ustawienia integracji).Select OK to proceed to the Integration Settings tab.

  9. Na karcie Integration Settings (Ustawienia integracji) określ następujące wartości:In the Integration Settings tab, specify the following values:

    • Service Principal (Jednostka usługi) — Jednostka usługi jest dodawana do serwera Jenkins jako poświadczenie na potrzeby uwierzytelniania na platformie Azure.Service Principal - The service principal is added into Jenkins as a credential for authentication with Azure. Opcja Auto oznacza, że jednostka zostanie utworzona za pomocą funkcji MSI (Managed Service Identity).Auto means that the principal will be created by MSI (Managed Service Identity). Opcja Manual oznacza, że jednostka powinna zostać utworzona przez Ciebie.Manual means that the principal should be created by you.
      • Application ID (Identyfikator aplikacji) i Secret (Klucz tajny) — Jeśli wybierzesz opcję Manual w polu Service Principal (Jednostka usługi), musisz określić wartości Application ID i Secret dla swojej jednostki usługi.Application ID and Secret - If you select the Manual option for the Service Principal option, you'll need to specify the Application ID and Secret for your service principal. W przypadku tworzenia jednostki usługi pamiętaj, że domyślna rola to Contributor (Współautor), która jest wystarczająca do pracy z zasobami platformy Azure.When creating a service principal, note that the default role is Contributor, which is sufficient for working with Azure resources.
    • Enable Cloud Agents (Włącz agentów chmurowych) — Określ domyślny szablon chmurowy dla agentów, gdzie wartość ACI odnosi się do wystąpienia kontenera platformy Azure, a wartość VM odnosi się do maszyn wirtualnych.Enable Cloud Agents - Specify the default cloud template for agents where ACI refers to Azure Container Instance, and VM refers to virtual machines. Możesz również określić wartość No, jeśli nie chcesz włączać agenta chmurowego.You can also specify No if you don't wish to enable a cloud agent.
  10. Wybierz przycisk OK, aby przejść do karty Summary (Podsumowanie).Select OK to proceed to the Summary tab.

  11. Po wyświetleniu karty Summary (Podsumowanie) wprowadzone informacje są weryfikowane.When the Summary tab displays, the information entered is validated. Gdy zostanie wyświetlony komunikat Validation passed (Weryfikacja pomyślna) (w górnej części karty), wybierz opcję OK.Once you see the Validation passed message (at the top of the tab), select OK.

    Karta podsumowania wyświetla i weryfikuje wybrane opcje.

  12. Gdy zostanie wyświetlona karta Create (Tworzenie), wybierz pozycję Create (Utwórz), aby utworzyć maszynę wirtualną serwera Jenkins.When the Create tab displays, select Create to create the Jenkins virtual machine. Gdy serwer będzie gotowy, w witrynie Azure Portal zostanie wyświetlone powiadomienie.When your server is ready, a notification displays in the Azure portal.

    Powiadomienie o tym, że serwer Jenkins jest gotowy.

Nawiązywanie połączenia z usługą JenkinsConnect to Jenkins

Przejdź do maszyny wirtualnej http://jenkins2517454.eastus.cloudapp.azure.com/(na przykład) w przeglądarce internetowej.Navigate to your virtual machine (for example, http://jenkins2517454.eastus.cloudapp.azure.com/) in your web browser. Konsola usługi Jenkins nie jest dostępna za pośrednictwem niezabezpieczonych połączeń HTTP, więc na stronie będą podane instrukcje, aby uzyskać dostęp do tej konsoli w sposób bezpieczny z komputera przy użyciu tunelu SSH.The Jenkins console is inaccessible through unsecured HTTP so instructions are provided on the page to access the Jenkins console securely from your computer using an SSH tunnel.

Odblokowywanie usługi Jenkins

Skonfiguruj tunel przy użyciu polecenia ssh na stronie z wiersza polecenia, zamieniając pozycję username na nazwę użytkownika administratora maszyny wirtualnej wybraną wcześniej podczas konfigurowania maszyny wirtualnej za pomocą szablonu rozwiązania.Set up the tunnel using the ssh command on the page from the command line, replacing username with the name of the virtual machine admin user chosen earlier when setting up the virtual machine from the solution template.

ssh -L 127.0.0.1:8080:localhost:8080 jenkinsadmin@jenkins2517454.eastus.cloudapp.azure.com

Po uruchomieniu tunelu przejdź do adresu http://localhost:8080/ na maszynie lokalnej.After you have started the tunnel, navigate to http://localhost:8080/ on your local machine.

Uzyskaj hasło początkowe, uruchamiając następujące polecenie w wierszu polecenia przy aktywnym połączeniu z maszyną wirtualną z usługą Jenkins za pośrednictwem powłoki SSH.Get the initial password by running the following command in the command line while connected through SSH to the Jenkins VM.

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Odblokuj pulpit nawigacyjny usługi Jenkins za pomocą hasła początkowego.Unlock the Jenkins dashboard for the first time using this initial password.

Odblokowywanie usługi Jenkins

Na następnej stronie wybierz pozycję Zainstaluj sugerowane wtyczki, a następnie utwórz administratora usługi Jenkins, który będzie służyć do uzyskiwania dostępu do pulpitu nawigacyjnego usługi Jenkins.Select Install suggested plugins on the next page and then create a Jenkins admin user used to access the Jenkins dashboard.

Usługa Jenkins jest gotowa do użycia.

Serwer Jenkins jest już gotowy do kompilowania kodu.The Jenkins server is now ready to build code.

Tworzenie pierwszego zadaniaCreate your first job

W konsoli usługi Jenkins wybierz pozycję Utwórz nowe zadania, nadaj temu elementowi nazwę mySampleApp i wybierz pozycję Projekt dowolny, a następnie wybierz przycisk OK.Select Create new jobs from the Jenkins console, then name it mySampleApp and select Freestyle project, then select OK.

Tworzenie nowego zadania

Wybierz kartę Zarządzanie kodem źródłowym, włącz pozycję Git i wprowadź następujący adres URL w polu Adres URL repozytorium:https://github.com/spring-guides/gs-spring-boot.gitSelect the Source Code Management tab, enable Git, and enter the following URL in Repository URL field: https://github.com/spring-guides/gs-spring-boot.git

Definiowanie repozytorium Git

Wybierz kartę Kompilacja, a następnie wybierz pozycję Dodaj krok kompilacji, Wywołaj skrypt Gradle.Select the Build tab, then select Add build step, Invoke Gradle script. Wybierz pozycję Użyj otoki Gradle, a następnie wprowadź wartość complete w polu Lokalizacja otoki i wartość build w polu Zadania.Select Use Gradle Wrapper, then enter complete in Wrapper location and build for Tasks.

Kompilowanie przy użyciu otoki Gradle

Wybierz pozycję Zaawansowane, a następnie wprowadź wartość complete w polu Główny skrypt kompilacji.Select Advanced and then enter complete in the Root Build script field. Wybierz pozycję Zapisz.Select Save.

Konfigurowanie ustawień zaawansowanych w kroku dotyczącym kompilacji i otoki Gradle

Kompilowanie kodBuild the code

Wybierz pozycję Kompiluj teraz, aby skompilować kod i utworzyć pakiet z aplikacją przykładową.Select Build Now to compile the code and package the sample app. Po zakończeniu kompilacji wybierz link Obszar roboczy dla projektu.When your build completes, select the Workspace link for the project.

Przechodzenie do obszaru roboczego w celu pobrania pliku JAR z kompilacji

Przejdź do folderu complete/build/libs i upewnij się, że znajduje się tam plik gs-spring-boot-0.1.0.jar, w celu potwierdzenia, że kompilacja zakończyła się pomyślnie.Navigate to complete/build/libs and ensure the gs-spring-boot-0.1.0.jar is there to verify that your build was successful. Serwer Jenkins jest już gotowy i możesz za jego pomocą kompilować własne projekty na platformie Azure.Your Jenkins server is now ready to build your own projects in Azure.

Rozwiązywanie problemów z szablonem rozwiązania JenkinsTroubleshooting the Jenkins solution template

Jeśli napotkasz jakiekolwiek usterki w szablonie rozwiązania Jenkins, prześlij zgłoszenie do repozytorium GitHub usługi Jenkins.If you encounter any bugs with the Jenkins solution template, file an issue in the Jenkins GitHub repo.

Następne krokiNext Steps