Samouczek: skalowanie wdrożeń serwera Jenkins przy użyciu maszyny wirtualnej uruchomionej na platformie Azure
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
Wymagania wstępne
- Instalacja narzędzia Jenkins: jeśli nie masz dostępu do instalacji serwera Jenkins, skonfiguruj usługę Jenkins przy użyciu interfejsu wiersza polecenia platformy Azure
Konfigurowanie maszyny wirtualnej agenta
Użyj polecenia az group create , aby utworzyć grupę zasobów platformy Azure.
az group create --name <resource_group> --location <location>
Użyj polecenia az vm create , aby utworzyć maszynę wirtualną.
az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
Kluczowe punkty:
- Możesz również przekazać klucz SSH za pomocą następującego polecenia
--ssh-key-value <ssh_path>
.
- Możesz również przekazać klucz SSH za pomocą następującego polecenia
Zainstaluj zestaw JDK.
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.
Konfigurowanie adresu URL serwera Jenkins
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
lubc:\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
lubexample.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 witrynyhttps://<your_jenkins_host_name>/jnlpJars/agent.jar
. Na przykładhttps://localhost:8443/jnlpJars/agent.jar
.Przekazywanie
agent.jar
do maszyny wirtualnejUruchom narzędzie Jenkins za pomocą polecenia
ssh <node_host> java -jar <remote_agentjar_path>
. Na przykładssh 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.