Bagikan melalui


Tutorial: Menyebarkan ke Azure App Service dengan Jenkins dan Azure CLI

Penting

Banyak layanan Azure memiliki plug-in Jenkins. Beberapa plug-in ini dihentikan pada 29 Februari 2024. Azure CLI adalah cara yang saat ini direkomendasikan untuk mengintegrasikan Jenkins dengan layanan Azure. Untuk informasi selengkapnya, lihat artikel Plug-in Jenkins untuk Azure.

Untuk menyebarkan aplikasi web Java ke Azure, Anda dapat menggunakan Azure CLI di Jenkins Pipeline. Dalam tutorial ini, Anda melakukan tugas-tugas berikut:

  • Membuat mesin virtual Jenkins
  • Mengonfigurasi Jenkins
  • Membuat aplikasi web di Azure
  • Menyiapkan repositori GitHub
  • Membuat alur Jenkins
  • Menjalankan alur dan memverifikasi aplikasi web

Prasyarat

  • Langganan Azure: Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.

Mengonfigurasi Jenkins

Langkah-langkah berikut menunjukkan cara menginstal Java JDK dan Maven yang diperlukan pada pengontrol Jenkins:

  1. Masuk ke pengontrol Jenkins menggunakan SSH.

  2. Unduh dan instal build Azul Zulu OpenJDK untuk Azure dari repositori apt-get:

    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-jdk
    
  3. Jalankan perintah berikut untuk menginstal Maven:

    sudo apt-get install -y maven
    

Menambahkan perwakilan layanan Azure ke kredensial Jenkins

Langkah-langkah berikut menunjukkan cara menentukan kredensial Azure Anda:

  1. Pastikan plug-in Credentials diinstal.

  2. Di dasbor Jenkins, pilih Credentials -> System ->.

  3. Pilih Global credentials(unrestricted).

  4. Pilih Add Credentials untuk menambahkan perwakilan layanan Microsoft Azure. Pastikan jenis kredensialnya adalah Nama pengguna dengan kata sandi dan masukkan item berikut:

    • Username: Perwakilan layanan appId
    • Password: Perwakilan layanan password
    • ID: Pengidentifikasi kredensial (seperti AzureServicePrincipal)

Membuat Azure App Service untuk menyebarkan aplikasi web Java

Gunakan az appservice plan create untuk membuat paket Azure App Service dengan tingkat harga GRATIS :

az appservice plan create \
    --name <app_service_plan> \ 
    --resource-group <resource_group> \
    --sku FREE

Poin utama:

  • Paket appservice menentukan sumber daya fisik yang digunakan untuk menghosting aplikasi Anda.
  • Semua aplikasi yang ditetapkan ke paket appservice berbagi sumber daya ini.
  • Dengan paket appservice, Anda bisa menghemat biaya saat menghosting beberapa aplikasi.

Membuat aplikasi web Azure

Gunakan az webapp create untuk membuat definisi aplikasi web dalam paket myAppServicePlan App Service.

az webapp create \
    --name <app_name> \ 
    --resource-group <resource_group> \
    --plan <app_service_plan>

Poin utama:

  • Definisi aplikasi web menyediakan URL untuk mengakses aplikasi Anda dan mengonfigurasi beberapa opsi untuk menyebarkan kode Anda ke Azure.
  • Ganti tempat penampung <app_name> dengan nama aplikasi yang unik.
  • Nama aplikasi adalah bagian dari nama domain default untuk aplikasi web. Maka nama aplikasi web harus unik di semua aplikasi di Azure.
  • Anda dapat memetakan entri nama domain kustom ke aplikasi web sebelum mengeksposnya ke pengguna Anda.

Konfigurasikan Java

Gunakan az appservice web config update untuk menyiapkan konfigurasi runtime Java untuk aplikasi:

az webapp config set \ 
    --name <app_name> \
    --resource-group <resource_group> \ 
    --java-version 1.8 \ 
    --java-container Tomcat \
    --java-container-version 8.0

Menyiapkan repositori GitHub

  1. Buka repositori Simple Java Web App untuk Azure.

  2. Pilih tombol Fork untuk melakukan fork repositori tersebut ke akun GitHub Anda sendiri.

  3. Buka file Jenkinsfile dengan mengeklik nama file.

  4. Pilih ikon pensil untuk mengedit file.

  5. Perbarui ID langganan dan ID penyewa.

      withEnv(['AZURE_SUBSCRIPTION_ID=<subscription_id>',
            'AZURE_TENANT_ID=<tenant_id>']) 
    
  6. Perbarui grup sumber daya dan nama aplikasi web Anda masing-masing pada baris 22 dan 23.

    def resourceGroup = '<resource_group>'
    def webAppName = '<app_name>'
    
  7. Perbarui ID kredensial di instans Jenkins Anda

    withCredentials([usernamePassword(credentialsId: '<service_princial>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
    

Membuat alur Jenkins

Lakukan hal berikut untuk membuat alur Jenkins:

  1. Buka Jenkins di browser web.

  2. Pilih Item Baru.

  3. Masukkan nama untuk pekerjaan tersebut.

  4. Pilih Alur.

  5. Pilih OK.

  6. Pilih Alur.

  7. Untuk Definisi, pilih Skrip alur dari SCM.

  8. Untuk SCM, pilih Git.

  9. Masukkan URL GitHub untuk repositori Anda yang di-fork: https:\<forked_repo\>.git

  10. Pilih Simpan

Uji alur Anda

  1. Buka alur yang telah Anda buat

  2. Pilih Bangun sekarang

  3. Setelah build selesai, pilih Output Konsol untuk melihat detail build.

Memverifikasi aplikasi web Anda

Lakukan hal berikut untuk memverifikasi apakah file WAR berhasil disebarkan ke aplikasi web Anda:

  1. Telusuri URL berikut: http://&lt;app_name>.azurewebsites.net/api/calculator/ping

  2. Anda akan melihat teks seperti berikut ini:

    Welcome to Java Web App!!! This is updated!
    Today's date
    
  3. Telusuri ke URL berikut (ganti x dan y dengan dua nilai yang akan dijumlahkan): http://< app_name.azurewebsites.net/api/calculator/add?x>=<x>&y=<y>.><><

    Example of running the demo add

Menyebarkan ke Azure App Service di Linux

App Service juga dapat menghosting aplikasi web secara asli di Linux untuk tumpukan aplikasi yang didukung. App Service juga dapat menjalankan kontainer Linux kustom (juga dikenal sebagai Web App for Containers).

Anda dapat memodifikasi skrip untuk disebarkan ke Azure App Service di Linux. App Service di Linux mendukung Docker. Dengan demikian, Anda menyediakan Dockerfile yang mengemas aplikasi web Anda dengan runtime layanan ke dalam citra Docker. Plug-in membangun citra, mendorongnya ke registri Docker, dan menyebarkan citra ke aplikasi web Anda.

  1. Lihat artikel Memigrasikan perangkat lunak kustom ke Azure App Service menggunakan kontainer kustom untuk membuat Azure App Service di Linux dan Azure Container Registry.

        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:latest
    
  2. Instal Docker di Jenkins Anda.

  3. Pastikan plug-in Docker Pipeline diinstal.

  4. Di repositori Simple Java Web App for Azure yang sama yang Anda fork, edit file Jenkinsfile2 sebagai berikut:

    1. Perbarui ID langganan dan ID penyewa.

       withEnv(['AZURE_SUBSCRIPTION_ID=<mySubscriptionId>',
              'AZURE_TENANT_ID=<myTenantId>']) {
      
    2. Perbarui menjadi nama grup sumber daya, aplikasi web, dan ACR Anda (mengganti tempat penampung dengan nilai Anda).

      def webAppResourceGroup = '<resource_group>'
      def webAppName = '<app_name>'
      def acrName = '<registry>'
      
    3. Perbarui <azsrvprincipal\> menjadi ID kredensial Anda

      withCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
      
  5. Buat alur Jenkins baru seperti yang Anda lakukan saat menyebarkan ke aplikasi web Azure di Windows menggunakan Jenkinsfile2.

  6. Jalankan pekerjaan baru Anda.

  7. Untuk memverifikasi, di Azure CLI, jalankan perintah berikut ini:

    az acr repository list -n <myRegistry> -o json
    

    Anda akan melihat hasil yang serupa dengan berikut ini:

    [
    "calculator"
    ]
    
  8. Telusuri ke http://<app_name>.azurewebsites.net/api/calculator/ping (mengganti tempat penampung). Anda akan melihat hasil yang serupa dengan berikut ini:

    Welcome to Java Web App!!! This is updated!
    Today's date
    
  9. Telusuri ke http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y> (mengganti tempat penampung). Nilai yang Anda tentukan untuk x dan y dijumlahkan dan ditampilkan.

Langkah berikutnya