Öğretici: Jenkins ve Azure CLı kullanarak Azure Spring buluta uygulama dağıtma
Azure Spring Cloud , yerleşik hizmet bulma ve yapılandırma yönetimiyle tam olarak yönetilen bir mikro hizmet geliştirmesinde bulunur. Hizmet, Spring Boot tabanlı mikro hizmet uygulamalarının Azure 'a dağıtılmasını kolaylaştırır. Bu öğreticide, Azure Spring Cloud için sürekli tümleştirme ve teslimi (CI/CD) otomatik hale getirmek için Jenkins 'de Azure CLı 'yı nasıl kullanabileceğiniz gösterilmektedir.
Bu öğreticide, şu görevleri tamamlayacaksınız:
- Bir hizmet örneği sağlayın ve bir Java Spring uygulaması başlatın
- Jenkins sunucunuzu hazırlama
- Mikro hizmet uygulamalarını derlemek ve dağıtmak için Jenkins ardışık düzeninde Azure CLı 'yı kullanma
Önkoşullar
- Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Jenkins: bir Linux sanal makinesine Jenkins 'i yükler
- GitHub hesabı: bir GitHub hesabınız yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Bir hizmet örneği sağlayın ve bir Java Spring uygulaması başlatın
Örnek Microsoft hizmet uygulaması olarak Piggy ölçümlerini kullanıyoruz ve hızlı başlangıç: Azure CLI kullanarak bir Java Spring uygulaması başlatarak hizmet örneğini temin edin ve uygulamaları ayarlayın. Aynı işlemden daha önce gittiğinden sonraki bölüme atlayabilirsiniz. Aksi takdirde, Azure CLı komutları aşağıda verilmiştir. Hızlı başlangıç: Azure CLI kullanarak bir Java Spring uygulaması başlatarak daha fazla arka plan bilgisi alın bölümüne bakın.
Yerel makinenizin Jenkins yapı sunucusuyla aynı önkoşulu karşılaması gerekir. Mikro hizmet uygulamalarını derlemek ve dağıtmak için aşağıdakilerin yüklü olduğundan emin olun:
- Git
- JDK 8
- Maven 3,0 veya üzeri
- Azure CLI yüklü, sürüm 2.0.67 veya üzeri
Azure yay bulutu uzantısını yükler:
az extension add --name spring-cloudAzure yay bulut hizmetinizi içerecek bir kaynak grubu oluşturun:
az group create --location eastus --name <resource group name>Azure Spring Cloud 'ın bir örneğini sağlayın:
az spring-cloud create -n <service name> -g <resource group name>piggy ölçümleri deposunu kendi GitHub hesabınıza çatalla. Yerel makinenizde, depoyu adlı bir dizinde kopyalayın
source-code:mkdir source-code git clone https://github.com/<your GitHub id>/piggymetricsYapılandırma sunucunuzu ayarlayın. <GitHub kimliğinizi > doğru değer ile değiştirdiğinizden emin olun.
az spring-cloud config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label configProjeyi derleyin:
cd piggymetrics mvn clean package -D skipTestsÜç mikro hizmeti oluşturun: Gateway, AUTH-Serviceve Account-Service:
az spring-cloud app create --n gateway -s <service name> -g <resource group name> az spring-cloud app create --n auth-service -s <service name> -g <resource group name> az spring-cloud app create --n account-service -s <service name> -g <resource group name>Uygulamaları dağıtma:
az spring-cloud app deploy -n gateway -s <service name> -g <resource group name> --jar-path ./gateway/target/gateway.jar az spring-cloud app deploy -n account-service -s <service name> -g <resource group name> --jar-path ./account-service/target/account-service.jar az spring-cloud app deploy -n auth-service -s <service name> -g <resource group name> --jar-path ./auth-service/target/auth-service.jarAğ geçidine genel uç nokta ata:
az spring-cloud app update -n gateway -s <service name> -g <resource group name> --is-public trueUygulamanın çalıştığını doğrulayabilmeniz için, URL 'yi almak üzere ağ geçidi uygulamasını sorgulayın.
az spring-cloud app show --name gateway | grep urlPlımetrimetrik uygulamasını çalıştırmak için önceki komutun sunduğu URL 'ye gidin.
Jenkins sunucusunu hazırlama
Bu bölümde, Jenkins sunucusunu test için ince olan bir derlemeyi çalıştıracak şekilde hazırlarsınız. Ancak güvenlik nedeniyle, derlemelerinizi çalıştırmak üzere Azure 'da bir aracı çalıştırmak için bir Azure VM Aracısı veya Azure Kapsayıcı Aracısı kullanmanız gerekir.
Eklentileri yükler
Jenkins sunucunuzda oturum açın. Jenkins yönetme eklentileriniYönet ' i seçin.
Kullanılabilir sekmesinde, aşağıdaki eklentileri seçin:
Bu eklentiler listede görünmezse, zaten yüklü olup olmadığını görmek için yüklü sekmesini işaretleyin.
Eklentileri yüklemek için Şimdi İndir ' i ve yeniden başlattıktan sonra Yükle' yi seçin.
Yüklemeyi gerçekleştirmek için Jenkins sunucunuzu yeniden başlatın.
Azure hizmet sorumlusu kimlik bilgilerinizi Jenkins kimlik bilgileri deposuna ekleyin
Azure 'a dağıtmak için bir Azure hizmet sorumlusu gerekir. Daha fazla bilgi için, Azure App Service dağıtma öğreticisindeki hizmet sorumlusu oluşturma bölümüne bakın. Çıkışı aşağıdakine
az ad sp create-for-rbacbenzer şekilde görünür:{ "appId": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "displayName": "xxxxxxxjenkinssp", "name": "http://xxxxxxxjenkinssp", "password": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "tenant": "xxxxxx--xxx-xxxx-xxx-xxxxxxxxxxxx" }Jenkins panosunda CredentialsSystem'ı (Kimlik Bilgileri > Sistem) seçin. Ardından, Global credentials(unrestricted) (Genel kimlik bilgileri (sınırsız)) seçeneğini belirleyin.
Kimlik bilgileri ekle' yi seçin.
hizmet sorumlusunu tür olarak Microsoft Azure seçin.
Aşağıdaki alanlar için değer sağlayın:
- ABONELIK kimliği: Azure abonelik kimliği
- ISTEMCI kimliği: hizmet sorumlusu AppID 'si
- Istemci gizlidizisi: hizmet sorumlusu parolası
- KIRACı kimliği: MICROSOFT HESABı Kiracı kimliği
- Azure ortamı: ortamınız için uygun değeri seçin. Örneğin, Azure genel için Azure 'u kullanın
- Kimlik: olarak ayarlayın . Bu kodu, bu makalenin sonraki bir adımında kullanıyoruz
- Açıklama: Bu isteğe bağlıdır, ancak önerilir.
Maven 'i ve az CLı Spring-Cloud uzantısını yükler
Örnek işlem hattı, hizmet örneğine dağıtmak için Maven 'yi kullanır ve az CLı kullanır. Jenkins yüklendiğinde, Jenkinsadlı bir yönetici hesabı oluşturur. Jenkins kullanıcısının Spring-Cloud uzantısını çalıştırma izni olduğundan emin olun.
SSH aracılığıyla jenkins denetleyicisine Bağlan.
Maven’i yükleyin.
sudo apt-get install mavenAzure CLı 'nın ' i girerek yüklü olduğunu doğrulayın
az version. Azure CLı yüklü değilse bkz. Azure CLI 'Yı yükleme.jenkinsKullanıcıya geç:sudo su jenkinsYay-bulut uzantısını ekleyin:
az extension add --name spring-cloud
Jenkinsfile oluşturma
kendi deponuzda ( https://github.com/< GitHub kimliğiniz > /pölçüleriniz), kökte bir https://github.com/ oluşturun.
Dosyayı aşağıdaki gibi güncelleştirin. Kaynak grubu adı > ve >değerlerini değiştirdiğinizden emin olun. Jenkins 'e kimlik bilgisini eklediğinizde farklı bir değer kullanırsanız, azure_service_principal doğru kimlikle değiştirin.
node { stage('init') { checkout scm } stage('build') { sh 'mvn clean package' } stage('deploy') { withCredentials([azureServicePrincipal('azure_service_principal')]) { // login to Azure sh ''' az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID az account set -s $AZURE_SUBSCRIPTION_ID ''' // Set default resource group name and service name. Replace <resource group name> and <service name> with the right values sh 'az config set defaults.group=<resource group name>' sh 'az config set defaults.spring-cloud=<service name>' // Deploy applications sh 'az spring-cloud app deploy -n gateway --jar-path ./gateway/target/gateway.jar' sh 'az spring-cloud app deploy -n account-service --jar-path ./account-service/target/account-service.jar' sh 'az spring-cloud app deploy -n auth-service --jar-path ./auth-service/target/auth-service.jar' sh 'az logout' } } }Değişiklikleri kaydedin ve işleyin.
İşi oluşturma
Jenkins panosunda Yeni öğe' ye tıklayın.
İş için bir ad, Deploy-POF ölçümleri sağlayın ve işlem hattıseçin. Tamam'a tıklayın.
Ardından, Pipeline (İşlem hattı) sekmesine tıklayın.
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: < GitHub kimliğiniz > /pıbir tanıtıcı
Dal belirticisinin (' any ' için siyah) */Azure olduğundan emin olun
Betik yolunuJenkinsfile olarak tut
Kaydet’e tıklayın
İşi doğrulama ve çalıştırma
İşi çalıştırmadan önce, oturum açma kimliğini girmekiçin oturum açma giriş kutusundaki metni güncelleştirelim.
Kendi deponuzda
index.htmlindex.html' de açın"Oturum açma bilgilerini girin" ifadesini arayın ve "oturum açma KIMLIĞINI gir" olarak güncelleştirin
<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>Değişiklikleri Yürüt
İşi Jenkins 'te el ile çalıştırın. Jenkins panosunda, iş dağıtımı-Pmbölçümleri ' ne tıklayın ve ardından Şimdi derleyin.
İş tamamlandıktan sonra, ağ geçidi UYGULAMASıNıN genel IP adresine gidin ve uygulamanızın güncelleştirildiğinden emin olun.

Kaynakları temizleme
Artık gerekli değilse, bu makalede oluşturulan kaynakları silin:
az group delete -y --no-wait -n <resource group name>