Samouczek: skalowanie wdrożeń serwera Jenkins przy użyciu maszyny wirtualnej uruchomionej na platformie Azure
Artykuł
Ważne
Wiele usług platformy Azure ma wtyczki Jenkins. Niektóre z tych wtyczek nie będą obsługiwane od 29 lutego 2024 r. Interfejs wiersza polecenia platformy Azure to obecnie zalecany sposób integracji serwera Jenkins z usługami platformy Azure. Aby uzyskać więcej informacji, zapoznaj się z artykułem Wtyczki serwera Jenkins dla platformy Azure.
W tym samouczku pokazano, jak utworzyć maszyny wirtualne z systemem Linux na platformie Azure i dodać maszynę wirtualną jako węzeł roboczy do usługi Jenkins.
Ten samouczek obejmuje następujące kroki:
Tworzenie maszyny agenta
Dodawanie agenta do usługi Jenkins
Tworzenie nowego zadania freestyle usługi Jenkins
Uruchamianie zadania na agencie maszyny wirtualnej platformy Azure
Zaloguj się do maszyny wirtualnej przy użyciu narzędzia SSH.
ssh username@123.123.123.123
Zainstaluj zestaw JDK za pomocą narzędzia apt. Można również zainstalować za pomocą innych narzędzi menedżera pakietów, takich jak yum lub pacman.
sudo apt-get install -y default-jdk
Po zakończeniu instalacji uruchom polecenie java -version , aby zweryfikować środowisko Java. Dane wyjściowe będą zawierać numery wersji skojarzone z różnymi częściami zestawu JDK.
Zaloguj się do maszyny wirtualnej przy użyciu narzędzia SSH lub Połączenie ion pulpitu zdalnego.
Jeśli używasz protokołu JNLP, musisz skonfigurować adres URL serwera Jenkins.
Z menu wybierz pozycję Zarządzaj serwerem Jenkins.
W obszarze Konfiguracja systemu wybierz pozycję Konfiguruj system.
Sprawdź, czy adres URL serwera Jenkins jest ustawiony na adres HTTP instalacji serwera Jenkins — http://<your_host>.<your_domain>:8080/.
Wybierz pozycję Zapisz.
Dodawanie agenta do usługi Jenkins
Z menu wybierz pozycję Zarządzaj serwerem Jenkins.
W obszarze Konfiguracja systemu wybierz pozycję Zarządzaj węzłami i chmurami.
Z menu wybierz pozycję Nowy węzeł.
Wprowadź wartość w polu Nazwa węzła.
Wybierz pozycję Agent stały.
Wybierz przycisk OK.
Określ wartości dla następujących pól:
Nazwa: określ unikatową nazwę identyfikującą agenta w ramach nowej instalacji serwera Jenkins. Ta wartość może być inna niż nazwa hosta agenta. Jednak wygodne jest, aby te dwie wartości były takie same. Wartość nazwy może zawierać dowolny znak specjalny z następującej listy: ?*/\%!@#$^&|<>[]:;.
Zdalny katalog główny: agent musi mieć katalog dedykowany serwerowi Jenkins. Określ ścieżkę do tego katalogu w agencie. Najlepiej użyć ścieżki bezwzględnej, takiej jak /home/azureuser/work lub c:\jenkins. Powinna to być ścieżka lokalna do maszyny agenta. Nie ma potrzeby, aby ta ścieżka była widoczna z wzorca. Jeśli używasz ścieżki względnej, takiej jak ./jenkins-agent, ścieżka będzie względna względem katalogu roboczego dostarczonego przez metodę Launch.
Etykiety: etykiety służą do grupowania agentów powiązanych semantycznie w jedną grupę logiczną. Można na przykład zdefiniować etykietę UBUNTU dla wszystkich agentów z systemem Ubuntu dystrybucji systemu Linux.
Metoda uruchamiania: istnieją dwie opcje uruchamiania zdalnego węzła Serwera Jenkins: Uruchamianie agentów za pośrednictwem protokołu SSH i Uruchamianie agenta za pomocą wykonywania polecenia na serwerze głównym:
Uruchom agentów za pośrednictwem protokołu SSH: określ wartości następujących pól:
Host: publiczny adres IP lub nazwa domeny maszyny wirtualnej. Na przykład 123.123.123.123 lub example.com
Poświadczenia: wybierz poświadczenia, które mają być używane do logowania się na hoście zdalnym. Możesz również wybrać przycisk Dodaj, aby zdefiniować nowe poświadczenie, a następnie wybrać nowe poświadczenie po jego utworzeniu.
Strategia weryfikacji klucza hosta: określa sposób, w jaki narzędzie Jenkins weryfikuje klucz SSH przedstawiony przez hosta zdalnego podczas nawiązywania połączenia.
Uruchom agenta za pomocą polecenia na serwerze głównym:
Pobierz plik agent.jar z witryny https://<your_jenkins_host_name>/jnlpJars/agent.jar. Na przykład https://localhost:8443/jnlpJars/agent.jar.
Przekazywanie agent.jar do maszyny wirtualnej
Uruchom narzędzie Jenkins za pomocą polecenia ssh <node_host> java -jar <remote_agentjar_path>. Na przykład ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar.
Wybierz pozycję Zapisz.
Po zdefiniowaniu konfiguracji narzędzie Jenkins dodaje maszynę wirtualną jako nowy węzeł roboczy.
Tworzenie zadania w usłudze Jenkins
Z menu wybierz pozycję Nowy element.
Wprowadź demoproject1 nazwę.
Wybierz pozycję Freestyle project (Projekt Freestyle).
Wybierz przycisk OK.
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). Zostanie wyświetlony komunikat potwierdzający, że etykieta jest obsługiwana przez konfigurację chmury utworzoną w poprzednim kroku.
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.git
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). Wprowadź package w polu Goals (Cele).
Wybierz pozycję Zapisz.
Tworzenie nowego zadania na agencie maszyny wirtualnej platformy Azure
Wybierz zadanie utworzone w poprzednim kroku.
Wybierz pozycję Skompiluj teraz. Nowa kompilacja zostanie utworzona w kolejce, ale nie zostanie uruchomiona, dopóki maszyna wirtualna agenta nie zostanie utworzona w ramach subskrypcji platformy Azure.
Po ukończeniu kompilacji przejdź do obszaru Console output (Dane wyjściowe konsoli). Będzie widać, że kompilacja została wykonana zdalnie na agencie platformy Azure.
Skontaktuj się ze wskazówkami zespołu internetowego Space Game, aby skonfigurować agenta kompilacji działającego lokalnie lub na maszynie wirtualnej platformy Azure działającej w chmurze.
Twórz kompleksowe rozwiązania na platformie Microsoft Azure, aby tworzyć usługi Azure Functions, implementować aplikacje internetowe i zarządzać nimi, opracowywać rozwiązania korzystające z usługi Azure Storage i nie tylko.