GNU/Linux >> Belajar Linux >  >> Ubuntu

Variabel Lingkungan Jenkins:Panduan Utama

Pendahuluan

Jenkins adalah solusi open-source yang digunakan untuk mengotomatisasi berbagai bagian dari siklus hidup pengembangan perangkat lunak (SDLC). Variabel lingkungan menyediakan alat yang berharga untuk ini, memungkinkan pengembang untuk memanggil nilai beberapa kali tanpa perlu mendefinisikannya sebelum digunakan.

Dalam tutorial ini, kita akan membahas berbagai cara untuk membuat daftar dan menyetel variabel lingkungan Jenkins.

Prasyarat

  • Salinan Jenkins yang terinstal dan siap digunakan (pelajari cara menginstal Jenkins di Ubuntu 18.04, Debian 10, CentOS 8, atau Windows 10).
  • Akses ke browser web.

Apa itu Variabel Lingkungan di Jenkins?

Variabel lingkungan adalah pasangan nilai kunci global yang dapat diakses dan disuntikkan Jenkins ke dalam sebuah proyek. Gunakan variabel lingkungan Jenkins untuk menghindari keharusan mengkodekan nilai yang sama untuk setiap proyek.

Manfaat lain menggunakan variabel lingkungan Jenkins termasuk peningkatan keamanan. Jenkins dapat menggunakan kredensial keamanan sebagai variabel, menjaga data sensitif atau yang dibuat pengguna dari kode proyek.

Jenis variabel yang umum digunakan di Jenkins termasuk env (variabel lingkungan), currentBuild , params (parameter), dan docker (akses ke fungsi Docker). Jenkins menyimpan semua variabel lingkungan saat ini dalam bentuk daftar.

Cara Melihat Variabel Lingkungan di Jenkins

Ada dua cara untuk membuat daftar semua variabel lingkungan Jenkins:

  • Mengakses daftar melalui browser web.
  • Menggunakan perintah shell Jenkins untuk mencetaknya.

Melalui env-vars.html

Untuk melihat daftar variabel lingkungan Jenkins di browser web, navigasikan ke alamat berikut:

[Jenkins URL]/env-vars.html

URL Jenkins adalah kombinasi dari nama host sistem Anda dan port yang digunakan oleh Jenkins. Misalnya, saat masuk ke sistem Anda menggunakan port default 8080:

http://localhost:8080/env-vars.html

Melalui set/printenv Shell Command

Metode lain adalah membuat pekerjaan Jenkins yang mengeksekusi perintah shell untuk melihat variabel lingkungan. Keluaran konsol dari tugas ini adalah versi modifikasi dari daftar variabel lingkungan.

1. Di sisi kiri dasbor Jenkins, klik Item Baru .

2. Masukkan nama Variabel Lingkungan s di bidang yang sesuai dan pilih Pipeline sebagai jenis barang.

3. Klik Oke untuk mengonfirmasi.

4. Gulir ke bawah ke Pipa bagian dan tambahkan kode berikut:

pipeline{
    agent any
    
    stages{
        stage("Env Variables"){
            steps{
                bat "set"                                                     
            }
        }
    }
}

4. Klik Simpan untuk mengonfirmasi perubahan pada pipeline.

5. Klik tombol Bangun Sekarang link di sisi kiri untuk membuat build pipeline baru.

6. Di bawah Build History , klik nomor build untuk mengakses opsi build.

7. Klik Keluaran Konsol di sisi kiri.

Keluaran Konsol halaman menampilkan output dari perintah shell. Dalam hal ini, ini adalah daftar variabel lingkungan Jenkins:

Cara Membaca Variabel Lingkungan di Jenkins Pipeline

Ada dua cara untuk membaca dan mengakses variabel lingkungan Jenkins:

  • Menggunakan env objek dengan nama variabel.
  • Menggunakan nama variabel pendek.

Sebagai contoh, kami menggunakan BUILD_NUMBER variabel, yang berisi nomor pembuatan pipa saat ini. Kode ini menunjukkan kedua metode membaca variabel:

pipeline {
    agent any

    stages {
        stage("Env Variables") {
            steps {
                echo "The current build number is ${env.BUILD_NUMBER}"
                echo "Another method is to use \${BUILD_NUMBER}, which is ${BUILD_NUMBER}"
            }
        }
    }
}

Pada contoh di atas, Jenkins membaca variabel dengan:

  • ${env.BUILD_NUMBER} :Menggunakan env objek.
  • ${BUILD_NUMBER} :Menggunakan nama variabel pendek.

Output menampilkan nomor build saat ini sebagai hasilnya:

Cara Menyetel Variabel Lingkungan di Jenkins Pipeline

Pengguna dapat mengatur variabel lingkungan Jenkins pada tingkat global atau lokal. Tambahkan variabel lingkungan global melalui dasbor Jenkins, sementara variabel lokal ditambahkan menggunakan pipeline deklaratif, imperatif, dan skrip.

Variabel Lingkungan Global Jenkins

Di Jenkins, saluran atau pekerjaan apa pun dapat mengakses dan membaca variabel lingkungan global. Untuk menambahkan variabel lingkungan global baru menggunakan dasbor Jenkins:

1. Di sisi kiri dasbor Jenkins, klik Kelola Jenkins .

2. Di bawah Konfigurasi Sistem bagian, klik Konfigurasikan Sistem .

3. Gulir ke bawah hingga Anda mencapai Properti global bagian. Centang kotak di samping Variabel lingkungan dan klik tombol Tambah tombol untuk menambahkan variabel baru.

4. Masukkan nama dan nilai variabel baru di bidang yang sesuai.

5. Klik tombol Simpan untuk menyimpan variabel baru.

Variabel Lingkungan Lokal Jenkins

Anda dapat mengatur variabel lingkungan lokal di Jenkins menggunakan pipa deklaratif. Metode ini menggunakan environment {} sintaks blok:

environment {
    [variable name] = "[variable value]"
}

Menempatkan blok ini di awal pipa berarti variabel tersedia untuk digunakan pada setiap langkah pipa. Menempatkannya pada tahapan tertentu berarti hanya tersedia selama tahapan tahapan tersebut dan tahapan tersebut saja.

Metode lain adalah dengan menggunakan env objek dalam skrip untuk mendefinisikan variabel lingkungan secara imperatif:

script {
    env. [variable name] = "[variable value]"
}

Terakhir, menggunakan withEnv([]) {} blok menetapkan variabel lingkungan lokal sebagai bagian dari pipa skrip:

withEnv(["[variable name]= [variable value]"])

Sebagai contoh, kode ini menggunakan ketiga metode yang diuraikan di atas dalam satu saluran untuk menyetel variabel lingkungan lokal:

pipeline {
    agent any

    environment {
        DATE = "December 17th"
    }

    stages {
        stage("Env Variables") {
            environment {
                NAME = "Alex"
            }

            steps {
                echo "Today is ${env.DATE}"
                echo "My name ${env.NAME}"

                script {
                    env.WEBSITE = "phoenixNAP KB"
                }

                echo "This is an example for ${env.WEBSITE}"

                withEnv(["TEST_VARIABLE=TEST_VALUE"]) {
                    echo "The value of TEST_VARIABLE is ${env.TEST_VARIABLE}"
                }
            }
        }
    }
}

Dalam contoh ini, kami menyetel DATE dan NAME variabel lingkungan secara deklaratif. DATE berada di bagian atas saluran dan dapat digunakan di setiap tahap, sementara NAME ada di "Env Variables" stage, jadi kita hanya bisa menggunakannya dalam stage itu. WEBSITE variabel diatur secara imperatif, dan TEST_VARIABLE adalah bagian dari alur skrip.

Keluaran konsol untuk pipeline ini menunjukkan bahwa Jenkins berhasil mengakses dan membaca setiap variabel:

Menyuntikkan Variabel Lingkungan

Menambahkan plugin EnvInject to Jenkins memungkinkan Anda untuk menyuntikkan variabel lingkungan selama startup build. Ini sangat berguna saat membuat proyek gaya bebas di Jenkins.

Ikuti langkah-langkah yang diuraikan di bawah ini untuk menambahkan plugin EnvInject ke Jenkins dan menyuntikkan variabel:

1. Klik Kelola Jenkins di sisi kiri dasbor.

2. Dalam Konfigurasi Sistem bagian, klik Kelola Plugin tombol.

3. Di bawah Tersedia tab, cari envinject . Tandai kotak centang di sebelah Environment Injector plugin dan klik Instal tanpa memulai ulang .

4. Setelah plugin selesai diinstal, kembali ke dasbor. Klik Item Baru tautan untuk membuat proyek baru, tambahkan nama, dan pilih proyek Gaya Bebas ketik.

5. Klik Oke untuk membuat proyek baru.

6. Gulir ke bawah ke Build bagian dan klik Tambahkan Langkah Pembuatan untuk membuka menu tarik-turun dengan opsi yang tersedia. Pilih Masukkan variabel lingkungan .

7. Jika Anda ingin menambahkan variabel lingkungan dari file properti, tambahkan jalur ke file di Jalur File Properti bidang. Opsi lainnya adalah menambahkan variabel baru langsung ke Konten Properti bidang, menggunakan [variable name] = [variable value] sintaks.

8. Klik tombol Simpan tombol untuk mengonfirmasi penambahan variabel lingkungan baru.

Cara Mengganti Variabel Lingkungan di Jenkins

Pipeline Jenkins memungkinkan pengguna untuk mengganti variabel lingkungan, mengubah nilai variabel saat ini dengan yang baru.

Proses override mengikuti beberapa aturan saat menentukan prioritas variabel:

  • The withEnv([]) { } blok menimpa variabel lingkungan apa pun.
  • Variabel disetel menggunakan env objek tidak bisa menimpa set tersebut menggunakan environment {} blokir.
  • Variabel disetel menggunakan env objek hanya dapat menimpa variabel lain yang disetel dengan env objek.

Ubuntu
  1. Referensi Variabel Lingkungan *di* /etc/environment?

  2. Memeriksa variabel lingkungan

  3. Betapa tidak disetelnya banyak variabel lingkungan

  1. Mengatur Variabel Lingkungan Shell | Kulit BASH

  2. Bagaimana Melewati Variabel Lingkungan ke Docker Containers

  3. Panduan utama untuk menginstal Flask di Ubuntu

  1. Tetapkan lingkungan sementara ($PATH)

  2. Mengatur variabel lingkungan Linux

  3. Cara membaca variabel lingkungan dari suatu proses