Öğretici: Jenkins ve Azure CLı ile Azure App Service dağıtım
Önemli
Birçok Azure hizmetine Jenkins eklentileri vardır. Bu eklentilerin bazıları 29 Şubat 2024 itibariyle destek dışı olacaktır. Azure CLı, Jenkins 'i Azure hizmetleriyle tümleştirmeye yönelik Şu anda önerilen yoldur. Daha fazla bilgi için Azure Için Jenkins eklentilerimakalesine bakın.
Bir Java Web uygulamasını Azure 'a dağıtmak için Azure CLı 'yi bir Jenkins ardışık düzenindekullanabilirsiniz. Bu öğreticide, aşağıdaki görevleri gerçekleştirebilirsiniz:
- Jenkins sanal makinesi oluşturma
- Jenkins’i yapılandırma
- Azure'da web uygulaması oluşturma
- GitHub deposu hazırlama
- Jenkins işlem hattı oluşturma
- İşlem hattını çalıştırma ve web uygulamasını doğrulama
Önkoşullar
- Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- JenkinsBir LINUX sanal makinesine Jenkins 'ı yükler
- Azure CLI: Jenkins sunucusuna Azure CLI 'yı (sürüm 2.0.67 veya üzeri) yükler.
Jenkins’i yapılandırma
Aşağıdaki adımlarda, Jenkins denetleyicisine gerekli Java JDK ve Maven 'nin nasıl yükleneceği gösterilmektedir:
SSH kullanarak Jenkins denetleyicisinde oturum açın.
Bir apt-get deposundan Azure için OpenJDK 'nin Azul Zulu derlemesini indirip yükleyin:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 sudo apt-add-repository "deb http://repos.azul.com/azure-only/zulu/apt stable main" sudo apt-get -q update sudo apt-get -y install zulu-8-azure-jdkMaven 'yi yüklemek için aşağıdaki komutu çalıştırın:
sudo apt-get install -y maven
Azure hizmet sorumlusunu bir Jenkins kimlik bilgisine ekleyin
Aşağıdaki adımlarda, Azure kimlik bilgilerinizin nasıl ayarlanacağı gösterilmektedir:
Kimlik bilgileri eklentisinin yüklü olduğundan emin olun.
Jenkins panosu içinde kimlik bilgileri- sistem- >' i seçin.
Küresel kimlik bilgilerini seçin (Kısıtlanmamış).
Microsoft Azure hizmet sorumlusueklemek için kimlik bilgileri ekle ' yi seçin. Kimlik bilgisi türünün parola Ile Kullanıcı adı olduğundan emin olun ve aşağıdaki öğeleri girin:
- Kullanıcı adı: hizmet sorumlusu
- Parola: hizmet sorumlusu
- Kimlik: kimlik bilgisi tanımlayıcısı (gibi )
Java web uygulamasını dağıtmak için Azure App Service oluşturma
Ücretsiz fiyatlandırma katmanıyla Azure App Service bir plan oluşturmak için az appservice plan Create komutunu kullanın:
az appservice plan create \
--name <app_service_plan> \
--resource-group <resource_group> \
--sku FREE
Anahtar noktaları:
- Uygulama hizmeti planı, uygulamalarınızı barındırmak için kullanılan fiziksel kaynakları tanımlar.
- Bir appservice planına atanan tüm uygulamalar bu kaynakları paylaşır.
- Appservice planları, birden çok uygulamayı barındırırken maliyet tasarrufu yapmanıza olanak tanır.
Azure web uygulaması oluşturma
App Service planında bir Web uygulaması tanımı oluşturmak için az WebApp Create kullanın .
az webapp create \
--name <app_name> \
--resource-group <resource_group> \
--plan <app_service_plan>
Anahtar noktaları:
- Web uygulaması tanımı, uygulamanıza erişebilmek için bir URL sağlar ve çeşitli seçenekleri yapılandırarak kodunuzu Azure'a dağıtır.
<app_name>Yer tutucusunu benzersiz bir uygulama adıyla değiştirin.- Uygulama adı, Web uygulaması için varsayılan etki alanı adının bir parçasıdır. Bu nedenle, adın Azure 'daki tüm uygulamalarda benzersiz olması gerekir.
- Uygulamanızı kullanıcılarınızın kullanımına sunmadan önce web uygulamasına bir özel etki alanı adı girdisi eşleyebilirsiniz.
Java'yı yapılandırma
Uygulama için Java çalışma zamanı yapılandırmasını ayarlamak için az appservice Web config Update komutunu kullanın:
az webapp config set \
--name <app_name> \
--resource-group <resource_group> \
--java-version 1.8 \
--java-container Tomcat \
--java-container-version 8.0
GitHub deposu hazırlama
Azure için Basit Java Web Uygulaması deposunu açın.
depoyu kendi GitHub hesabınızla çatala eklemek için çatal düğmesini seçin.
Dosya adına tıklayarak Jenkinsfile dosyasını açın.
Dosyayı düzenlemek için kalem simgesini seçin.
Abonelik KIMLIĞINI ve kiracı KIMLIĞINI güncelleştirin.
withEnv(['AZURE_SUBSCRIPTION_ID=<subscription_id>', 'AZURE_TENANT_ID=<tenant_id>'])Web uygulamanızın kaynak grubunu ve adını sırasıyla 22 ve 23 tarihinde güncelleştirin.
def resourceGroup = '<resource_group>' def webAppName = '<app_name>'Jenkins örneğiniz için kimlik bilgisi KIMLIĞINI güncelleştirin
withCredentials([usernamePassword(credentialsId: '<service_princial>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
Jenkins işlem hattı oluşturma
Jenkins işlem hattı oluşturmak için aşağıdakileri yapın:
Jenkins'i bir web tarayıcısında açın.
Yeni Öğe’yi seçin.
İş için bir ad girin.
İşlem hattı' nı seçin.
Tamam’ı seçin.
İşlem hattı' nı seçin.
Definition (Tanım) için Pipeline script from SCM'yi (SCM'den işlem hattı betiği) seçin.
SCM için Git'i seçin.
adreslenmiş deponuz için GitHub URL 'sini girin:
https:\<forked_repo\>.gitKaydet’i seçin
İşlem hattınızı test etme
Oluşturduğunuz işlem hattına gidin
Şimdi Oluştur ' u seçin
Derleme tamamlandıktan sonra, derleme ayrıntılarını görmek için konsol çıkışı ' nı seçin.
Web uygulamanızı doğrulama
WAR dosyasının Web uygulamanıza başarıyla dağıtıldığını doğrulamak için aşağıdakileri yapın:
Aşağıdaki URL 'ye gidin:
http://<app_name>.azurewebsites.net/api/calculator/pingAşağıdakine benzer bir metin görmeniz gerekir:
Welcome to Java Web App!!! This is updated! Today's dateAşağıdaki URL 'ye gidin ( <> toplanacak iki değerle x ve y 'yi yerine koyun <> ): http:// < app_name > . azurewebsites.net/api/Calculator/Add?x = < x >& y = < y > .

Linux üzerinde Azure App Service dağıtma
App Service, Web uygulamalarını desteklenen uygulama yığınları için yerel olarak Linux üzerinde de barındırabilir. Ayrıca, özel Linux kapsayıcıları (Kapsayıcılar için Web App olarak da bilinir) çalıştırabilir.
Linux üzerinde bir Azure App Service dağıtmak üzere betiği değiştirebilirsiniz. Linux üzerinde App Service Docker 'ı destekler. Bu nedenle, Web uygulamanızı hizmet çalışma zamanına sahip bir Docker görüntüsüne paketleyen bir Dockerfile sağlarsınız. Eklenti görüntüyü oluşturur, bir Docker kayıt defterine gönderir ve görüntüyü Web uygulamanıza dağıtır.
Linux ve Azure Container Registry Azure App Service oluşturmak için özel bir kapsayıcı kullanarak Azure App Service özel yazılım geçirme bölümüne bakın.
az group create --name myResourceGroup2 --location westus2 az acr create --name myACRName --resource-group myResourceGroup2 --sku Basic --admin-enabled true az appservice plan create --name myAppServicePlan --resource-group myResourceGroup2 --is-linux az webapp create --resource-group myResourceGroup2 --plan myAppServicePlan --name myApp --deployment-container-image-name myACRName.azurecr.io/calculator:latestDocker ardışık düzen eklentisinin yüklü olduğundan emin olun.
Azure deposu için aynı basit Java Web uygulamasında, Jenkinsfile2 dosyasını aşağıdaki gibi düzenleyin:
Abonelik KIMLIĞINI ve kiracı KIMLIĞINI güncelleştirin.
withEnv(['AZURE_SUBSCRIPTION_ID=<mySubscriptionId>', 'AZURE_TENANT_ID=<myTenantId>']) {Kaynak grubunuzun, Web uygulamanızın ve ACR 'nizin adlarına güncelleştirin (yer tutucuları değerlerinizle değiştirin).
def webAppResourceGroup = '<resource_group>' def webAppName = '<app_name>' def acrName = '<registry>'<azsrvprincipal\>Kimlik BILGISI kimliğinize güncelleştirmewithCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
kullanarak Windows Azure web app 'e dağıtım yaparken yaptığınız gibi yeni bir jenkins işlem hattı oluşturun
Jenkinsfile2.Yeni işinizi çalıştırın.
Azure CLı 'de doğrulamak için şu komutu çalıştırın:
az acr repository list -n <myRegistry> -o jsonAşağıdakilere benzer sonuçlar görmeniz gerekir:
[ "calculator" ]http://<app_name>.azurewebsites.net/api/calculator/ping(Yer tutucuyu değiştirme) öğesine gidin. Aşağıdakine benzer sonuçlar görüyor gerekir:Welcome to Java Web App!!! This is updated! Today's date(Yer
http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y>tutucuları değiştirerek) gidin. ve için belirttiğinizxdeğerlerytop özetler ve görüntülenir.