Öğretici: Azure'da çalışan VM ile Jenkins dağıtımlarını ölçeklendirme
Önemli
Birçok Azure hizmeti Jenkins eklentilerine sahiptir. Bu eklentilerden bazıları 29 Şubat 2024 itibarıyla destekten çıkarılacaktır. Azure CLI, Jenkins'i Azure hizmetleriyle tümleştirmenin şu anda önerilen yoludur. Daha fazla bilgi için Azure için Jenkins eklentileri makalesine bakın.
Bu öğreticide, Azure'da Linux sanal makineleri oluşturma ve VM'yi Jenkins'e iş düğümü olarak ekleme adımları gösterilmektedir.
Bu öğreticide şunları yapacaksınız:
- Aracı makinesi oluşturma
- Jenkins'e aracı ekleme
- Yeni bir serbest tarzda Jenkins işi oluşturma
- İşi bir Azure VM aracısında çalıştırma
Önkoşullar
- Jenkins yüklemesi: Jenkins yüklemesine erişiminiz yoksa Azure CLI kullanarak Jenkins'i yapılandırın
Aracı sanal makinesini yapılandırma
Azure kaynak grubu oluşturmak için az group create komutunu kullanın.
az group create --name <resource_group> --location <location>
Bir sanal makine oluşturmak için az vm create komutunu kullanın.
az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
Önemli noktalar:
- SSH anahtarınızı aşağıdaki komutla
--ssh-key-value <ssh_path>
da karşıya yükleyebilirsiniz.
- SSH anahtarınızı aşağıdaki komutla
JDK'yi yükleyin.
SSH aracını kullanarak sanal makinede oturum açın.
ssh username@123.123.123.123
Apt ile JDK'yi yükleyin. Ayrıca yum veya pacman gibi diğer paket yöneticisi araçlarıyla da yükleyebilirsiniz.
sudo apt-get install -y default-jdk
Yükleme tamamlandıktan sonra Java ortamını doğrulamak için komutunu çalıştırın
java -version
. Çıkış, JDK'nin çeşitli bölümleriyle ilişkili sürüm numaralarını içerir.
Jenkins URL'sini yapılandırma
JNLP kullanıyorsanız Jenkins URL'sini yapılandırmanız gerekir.
Menüden Jenkins'i Yönet'i seçin.
Sistem Yapılandırması'nın altında Sistemi Yapılandır'ı seçin.
Jenkins URL'sinin Jenkins yüklemenizin HTTP adresine ayarlandığını doğrulayın-
http://<your_host>.<your_domain>:8080/
.Kaydet'i seçin.
Jenkins'e aracı ekleme
Menüden Jenkins'i Yönet'i seçin.
Sistem Yapılandırması'nın altında Düğümleri ve Bulutları Yönet'i seçin.
Menüden Yeni Düğüm'e tıklayın.
Düğüm Adı için bir değer girin.
Kalıcı Aracı'ya tıklayın.
Tamam seçeneğini işaretleyin.
Aşağıdaki alanların değerleri belirtin:
Ad: Yeni Jenkins yüklemesinde bir aracıyı tanımlayan benzersiz bir ad belirtin. Bu değer aracı ana bilgisayar adından farklı olabilir. Ancak, bunları iki değeri aynı yapmak uygundur. Ad değerine aşağıdaki listeden herhangi bir özel karaktere izin verilir:
?*/\%!@#$^&|<>[]:;
.Uzak kök dizin: Bir aracının Jenkins'e ayrılmış bir dizini olması gerekir. Aracıda bu dizinin yolunu belirtin. Veya
c:\jenkins
gibi/home/azureuser/work
mutlak bir yol kullanmak en iyisidir. Bu, aracı makinesinin yerel yolu olmalıdır. Bu yolun ana şablondan görünmesine gerek yoktur. ./jenkins-agent gibi göreli bir yol kullanırsanız yol, Launch yöntemi tarafından sağlanan çalışma dizinine göre olacaktır.Etiketler: Etiketler, ilgili aracıları tek bir mantıksal grupta gruplandırmak için kullanılır. Örneğin, Linux'un Ubuntu dağıtımını
UBUNTU
çalıştıran tüm aracılarınız için bir etiketi tanımlayabilirsiniz.Başlatma yöntemi: Uzak Jenkins düğümünü başlatmak için iki seçenek vardır: Aracıları SSH aracılığıyla başlatma ve Ana sunucuda komutunu yürütme yoluyla aracıyı başlatma:
SSH aracılığıyla aracıları başlatma: Aşağıdaki alanların değerlerini belirtin:
Konak: VM genel IP adresi veya etki alanı adı. Örneğin
123.123.123.123
veyaexample.com
Kimlik bilgileri: Uzak konakta oturum açmak için kullanılacak kimlik bilgilerini seçin. Yeni bir kimlik bilgisi tanımlamak için Ekle düğmesini ve ardından yeni kimlik bilgilerini oluşturduktan sonra seçebilirsiniz.
Konak Anahtarı Doğrulama Stratejisi: Jenkins'in bağlanırken uzak ana bilgisayar tarafından sunulan SSH anahtarını nasıl doğrulayacağını denetler.
Ana bilgisayarda komutunun yürütülmesi yoluyla aracıyı başlatın:
dosyasını adresinden
agent.jar
https://<your_jenkins_host_name>/jnlpJars/agent.jar
indirin. Örneğin,https://localhost:8443/jnlpJars/agent.jar
.Sanal makinenize yükleme
agent.jar
Jenkins'i komutuyla
ssh <node_host> java -jar <remote_agentjar_path>
başlatın. Örneğin,ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar
.
Kaydet'i seçin.
Yapılandırmaları tanımladıktan sonra Jenkins sanal makineyi yeni bir iş düğümü olarak ekler.
Jenkins içinde iş oluşturma
Menüden Yeni Öğe'yi seçin.
Ad olarak girin
demoproject1
.Serbest stilde proje’yi seçin.
Tamam seçeneğini işaretleyin.
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. Etiketin bir önceki adımda oluşturulan buluta yapılandırması tarafında sunulduğunu onaylayan bir ileti göreceksiniz.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.git
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. Goals (Hedefler) alanına
package
yazın.Kaydet'i seçin.
Yeni işi Azure VM aracısında derleme
Önceki adımda oluşturduğunuz işi seçin.
Şimdi derle'yi seçin. Yeni bir derleme kuyruğa alınır, ancak Azure aboneliğinizde bir aracı VM oluşturulana kadar başlatılmaz.
Derleme tamamlandıktan sonra Konsol çıktısı’na gidin. Derlemenin Azure aracısı üzerinde uzaktan gerçekleştirildiğini görürsünüz.