Tutorial: Menyebarkan ke mesin virtual Linux menggunakan Jenkins dan Azure DevOps

Integrasi berkelanjutan (CI) dan penyebaran berkelanjutan (CD) membentuk alur di mana Anda dapat membangun, merilis, dan menyebarkan kode. Azure DevOps Services menyediakan seperangkat alat otomatisasi CI/CD yang lengkap dan berfitur lengkap untuk penyebaran ke Azure. Jenkins adalah alat berbasis server CI/CD pihak ketiga yang populer yang juga menyediakan otomatisasi CI/CD. Anda dapat menggunakan Azure DevOps dan Jenkins bersama-sama untuk menyesuaikan cara Anda mengirimkan aplikasi atau layanan cloud Anda.

Dalam tutorial ini, Anda menggunakan Jenkins untuk membangun aplikasi web Node.js. Anda kemudian menggunakan Azure DevOps untuk menyebarkannya

ke grup penyebaran yang berisi mesin virtual (VM) Linux. Anda akan mempelajari cara untuk:

  • Mendapatkan aplikasi sampel.
  • Mengonfigurasi plug-in Jenkins.
  • Mengonfigurasi proyek Freestyle Jenkins untuk Node.js.
  • Mengonfigurasi Jenkins untuk integrasi Azure DevOps.
  • Membuat titik akhir layanan Jenkins.
  • Membuat grup penyebaran untuk mesin virtual Azure.
  • Membuat alur rilis Azure Pipelines.
  • Jalankan penyebaran manual dan dipicu CI.

Prasyarat

Mendapatkan aplikasi sampel

Anda memerlukan aplikasi untuk menyebarkan, yang tersimpan dalam repositori Git. Untuk tutorial ini, kami sarankan Anda menggunakan aplikasi sampel ini yang tersedia dari GitHub. Tutorial ini berisi skrip sampel yang digunakan untuk menginstal Node.js dan aplikasi. Jika Anda ingin bekerja dengan repositori Anda sendiri, Anda harus mengonfigurasi sampel serupa.

Buat fork aplikasi ini dan catat lokasi (URL) untuk digunakan di langkah-langkah selanjutnya dari tutorial ini. Untuk informasi selengkapnya, lihat Fork repositori.

Catatan

Aplikasi tersebut dibuat melalui Yeoman. Aplikasi ini menggunakan Express, bower, dan grunt. Dan memiliki beberapa paket npm sebagai ketergantungan. Sampel juga terdiri atas skrip yang menyiapkan Nginx dan menyebarkan aplikasi. Dijalankan pada komputer virtual. Secara khusus, skrip:

  1. Menginstal Node, Nginx, dan PM2.
  2. Mengonfigurasi Nginx dan PM2.
  3. Memulai aplikasi Node.

Mengonfigurasi plug-in Jenkins

Pertama, Anda harus mengonfigurasi dua plug-in Jenkins: NodeJS dan VS Team Services Continuous Deployment.

  1. Buka akun Jenkins Anda dan pilih Kelola Jenkins.
  2. Pada halaman Kelola Jenkins, pilih Kelola Plugin.
  3. Filter daftar untuk menemukan plug-in NodeJS, dan pilih opsi Instal tanpa menghidupkan ulang. Adding the NodeJS plug-in to Jenkins
  4. Filter daftar untuk menemukan plug-in Vs Team Services Continuous Deployment dan pilih opsi Instal tanpa menghidupkan ulang.
  5. Kembali ke dasbor Jenkins dan pilih Kelola Jenkins.
  6. Pilih Konfigurasi Alat Global. Temukan NodeJS dan pilih penginstalan NodeJS.
  7. Pilih opsi Instal secara otomatis, lalu masukkan nilai Nama.
  8. Pilih Simpan.

Mengonfigurasi proyek Freestyle Jenkins untuk Node.js

  1. Pilih Item Baru. Masukkan nama item.
  2. Pilih proyek Freestyle. Pilih OK.
  3. Pada tab Manajemen Kode Sumber, pilih Git dan masukkan detail repositori dan cabang yang berisi kode aplikasi Anda.
    Add a repo to your build
  4. Pada tab Pemicu Build, pilih Poll SCM dan masukkan jadwal H/03 * * * * guna melakukan polling repositori Git untuk perubahan setiap tiga menit.
  5. Pada tab Lingkungan Build, pilih Sediakan Node & npm bin/ folder PATH dan pilih nilai Penginstalan NodeJS. Biarkan file npmrc diatur untuk menggunakan default sistem.
  6. Pada tab Build, pilih Jalankan shell dan masukkan perintah npm install untuk memastikan bahwa semua dependensi diperbarui.

Mengonfigurasi integrasi Jenkins untuk Azure DevOps

Catatan

Pastikan bahwa token akses pribadi (PAT) yang Anda gunakan untuk langkah-langkah berikut berisi izin Release (baca, tulis, jalankan, dan kelola) di Azure DevOps.

  1. Buat PAT di organisasi Azure DevOps Anda jika belum memilikinya. Jenkins memerlukan informasi ini untuk mengakses organisasi Azure DevOps Anda. Pastikan untuk menyimpan informasi token untuk langkah-langkah mendatang di bagian ini.

    Untuk mempelajari cara membuat token, baca Bagaimana cara membuat token akses pribadi untuk Azure DevOps?.

  2. Di tab Tindakan Pasca-build, pilih Tambahkan tindakan pasca-build. Pilih Arsipkan artefak.

  3. Untuk File yang diarsipkan, masukkan **/* untuk menyertakan semua file.

  4. Untuk membuat tindakan lain, pilih Tambahkan tindakan pasca-build.

  5. Pilih Rilis pemicu di TFS/Team Services. Masukkan URI untuk organisasi Azure DevOps Anda, seperti https://{your-organization-name}.visualstudio.com.

  6. Masukkan Nama proyek.

  7. Pilih nama untuk alur rilis. (Anda membuat alur rilis ini nanti di Azure DevOps.)

  8. Pilih info masuk untuk tersambung ke Azure DevOps atau lingkungan Azure DevOps Server Anda:

    • Biarkan Nama Pengguna kosong jika Anda menggunakan Azure DevOps.
    • Masukkan nama pengguna dan kata sandi jika Anda menggunakan Azure DevOps Server versi lokal.
      Configuring Jenkins post-build actions
  9. Simpan proyek Jenkins.

Membuat titik akhir layanan Jenkins

Titik akhir layanan memungkinkan Azure DevOps tersambung ke Jenkins.

  1. Buka halaman Layanan di Azure DevOps, buka daftar Titik Akhir Layanan Baru, dan pilih Jenkins. Add a Jenkins endpoint
  2. Masukkan nama untuk koneksi.
  3. Masukkan URL server Jenkins Anda dan pilih opsi Terima sertifikat SSL yang tidak tepercaya. Contoh URL adalah http://{YourJenkinsURL}.westcentralus.cloudapp.azure.com.
  4. Masukkan nama pengguna dan kata sandi untuk akun Jenkins Anda.
  5. Pilih Verifikasi koneksi untuk memeriksa apakah informasinya benar.
  6. Pilih OK untuk membuat titik akhir layanan.

Membuat grup penyebaran untuk mesin virtual Azure

Anda memerlukan grup penyebaran untuk mendaftarkan agen Azure DevOps sehingga alur rilis dapat disebarkan ke mesin virtual Anda. Grup penyebaran mempermudah dalam menentukan grup logis mesin target untuk penyebaran, dan untuk menginstal agen yang diperlukan pada setiap mesin.

Catatan

Dalam prosedur berikut, pastikan untuk menginstal prasyarat dan tidak menjalankan skrip dengan hak istimewa sudo.

  1. Buka tab Rilis hub Build & Release , buka Grup penyebaran, dan pilih + Baru.
  2. Masukkan nama yang unik untuk grup dan deskripsi opsional. Lalu pilih Buat.
  3. Pilih sistem operasi untuk mesin virtual target penyebaran Anda. Misalnya, pilih Ubuntu 16.04+.
  4. Pilih Gunakan token akses pribadi dalam skrip untuk autentikasi.
  5. Pilih tautan Prasyarat sistem. Instal prasyarat untuk sistem operasi Anda.
  6. Pilih Salin skrip ke clipboard untuk menyalin skrip.
  7. Masuk ke mesin virtual target penyebaran Anda dan jalankan skrip. Jangan menjalankan skrip dengan hak istimewa sudo.
  8. Setelah penginstalan, Anda diminta untuk tag grup penyebaran. Terima default.
  9. Di Azure DevOps, periksa mesin virtual Anda yang baru terdaftar di Target di bagian Grup Penyebaran.

Membuat alur rilis Azure Pipelines

Alur rilis menentukan proses yang digunakan Azure Pipelines untuk menyebarkan aplikasi. Dalam contoh ini, Anda menjalankan skrip shell.

Untuk membuat alur rilis di Azure Pipelines:

  1. Buka tab Rilis hub Build & Release , dan pilih Buat alur rilis.
  2. Pilih templat Kosong dengan memilih untuk memulai dengan Proses kosong.
  3. Di bagian Artefak, pilih + Tambahkan Artefak dan pilih Jenkins untuk Jenis sumber. Pilih koneksi titik akhir layanan Jenkins Anda. Kemudian pilih pekerjaan sumber Jenkins dan pilih Tambahkan.
  4. Pilih elipsis di samping Lingkungan 1. Pilih Tambahkan fase grup penyebaran.
  5. Pilih grup penyebaran Anda.
  6. Pilih + untuk menambahkan tugas ke Fase grup penyebaran.
  7. Pilih tugas Skrip Shell dan pilih Tambahkan. Tugas Skrip Shell menyediakan konfigurasi untuk skrip yang akan dijalankan di setiap server guna menginstal Node.js dan memulai aplikasi.
  8. Untuk Jalur Skrip, masukkan $(System.DefaultWorkingDirectory)/Fabrikam-Node/deployscript.sh.
  9. Pilih Tingkat Lanjut, lalu aktifkan Tentukan Direktori Kerja.
  10. Untuk Direktori Kerja, masukkan $(System.DefaultWorkingDirectory)/Fabrikam-Node.
  11. Edit nama alur rilis ke nama yang Anda tentukan pada tab Tindakan Pasca-build dari build di Jenkins. Jenkins membutuhkan nama ini untuk dapat memicu rilis baru saat artefak sumber diperbarui.
  12. Pilih Simpan dan pilih OK untuk menyimpan alur rilis.

Menjalankan penyebaran manual dan yang dipicu CI

  1. Pilih + Rilis dan pilih Buat Rilis.
  2. Pilih build yang Anda selesaikan di daftar drop-down yang disorot, dan pilih Antrean.
  3. Pilih tautan rilis di pesan pop-up. Misalnya: "Rilis Release-1 telah dibuat."
  4. Buka tab Log untuk melihat output konsol rilis.
  5. Di browser Anda, buka URL salah satu server yang Anda tambahkan ke grup penyebaran Anda. Misalnya, masukkan http://{your-server-ip-address}.
  6. Buka repositori Git sumber dan ubah isi judul h1 di file app/views/index.jade dengan beberapa teks yang diubah.
  7. Terapkan perubahan Anda.
  8. Setelah beberapa menit, Anda akan melihat rilis baru yang dibuat di halaman Rilis Azure DevOps. Buka rilis untuk melihat penyebaran yang berlangsung. Selamat!

Memecahkan masalah plug-in Jenkins

Jika Anda menemukan bug terkait plug-in Jenkins, ajukan permasalahan di JIRA Jenkins untuk komponen tertentu.

Langkah berikutnya

Dalam tutorial ini, Anda mengotomatiskan penyebaran aplikasi ke Azure menggunakan Jenkins untuk proses build dan Azure DevOps untuk proses rilis. Anda mempelajari cara untuk:

  • Membangun aplikasi Anda di Jenkins.
  • Mengonfigurasi Jenkins untuk integrasi Azure DevOps.
  • Membuat grup penyebaran untuk mesin virtual Azure.
  • Membuat Azure Pipeline yang mengonfigurasi VM dan menyebarkan aplikasi.

Guna mempelajari cara menggunakan Azure Pipeline untuk langkah Build dan Rilis, lihat ini.

Untuk mempelajari cara menulis alur CI/CD berbasis YAML untuk disebarkan ke VM, lanjutkan ke tutorial berikutnya.