GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Variabili d'ambiente Jenkins:guida definitiva

Introduzione

Jenkins è una soluzione open source utilizzata per automatizzare diverse parti del ciclo di vita dello sviluppo del software (SDLC). Le variabili d'ambiente forniscono uno strumento prezioso per questo, consentendo agli sviluppatori di invocare un valore più volte senza la necessità di definirlo prima di ogni utilizzo.

In questo tutorial, tratteremo diversi modi per elencare e impostare le variabili di ambiente Jenkins.

Prerequisiti

  • Una copia di Jenkins installata e pronta per l'uso (scopri come installare Jenkins su Ubuntu 18.04, Debian 10, CentOS 8 o Windows 10).
  • Accesso a un browser web.

Cosa sono le variabili d'ambiente in Jenkins?

Le variabili di ambiente sono coppie chiave-valore globali a cui Jenkins può accedere e iniettarle in un progetto. Usa le variabili di ambiente Jenkins per evitare di dover codificare gli stessi valori per ogni progetto.

Altri vantaggi dell'utilizzo delle variabili di ambiente Jenkins includono una maggiore sicurezza. Jenkins può utilizzare le credenziali di sicurezza come variabili, mantenendo i dati sensibili o generati dagli utenti fuori dal codice del progetto.

I tipi di variabili comunemente usati in Jenkins includono env (variabili di ambiente), currentBuild , params (parametri) e docker (accesso alle funzioni Docker). Jenkins salva tutte le variabili di ambiente correnti sotto forma di elenco.

Come visualizzare le variabili d'ambiente in Jenkins

Esistono due modi per elencare tutte le variabili di ambiente Jenkins:

  • Accesso all'elenco tramite un browser web.
  • Utilizzare i comandi della shell Jenkins per stamparlo.

Tramite env-vars.html

Per visualizzare un elenco di variabili ambientali Jenkins in un browser Web, accedere al seguente indirizzo:

[Jenkins URL]/env-vars.html

L'URL Jenkins è una combinazione del nome host del sistema e della porta utilizzata da Jenkins. Ad esempio, quando accedi al tuo sistema utilizzando la porta predefinita 8080:

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

Tramite il comando shell set/printenv

Un altro metodo consiste nel creare un lavoro Jenkins che esegua un comando shell per visualizzare le variabili di ambiente. L'output della console di questo lavoro è una versione modificata dell'elenco delle variabili di ambiente.

1. Sul lato sinistro della dashboard Jenkins, fai clic su Nuovo elemento .

2. Immettere il nome Variabile d'ambiente s nel campo appropriato e seleziona Pipeline come tipo di elemento.

3. Fare clic su OK per confermare.

4. Scorri verso il basso fino alla Pipeline sezione e aggiungi il seguente codice:

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

4. Fai clic su Salva per confermare le modifiche alla pipeline.

5. Fai clic su Crea ora collegamento sul lato sinistro per creare una nuova build della pipeline.

6. In Cronologia build , fai clic sul numero di build per accedere alle opzioni di build.

7. Fare clic su Uscita console sul lato sinistro.

L'Uscita della console page mostra l'output del comando della shell. In questo caso, è un elenco di variabili di ambiente Jenkins:

Come leggere le variabili d'ambiente nella pipeline Jenkins

Esistono due modi per leggere e accedere alle variabili di ambiente Jenkins:

  • Utilizzo di env oggetto con il nome della variabile.
  • Utilizzo del nome breve della variabile.

Ad esempio, stiamo utilizzando il BUILD_NUMBER variabile, che contiene il numero di build della pipeline corrente. Questo codice mostra entrambi i metodi di lettura della variabile:

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}"
            }
        }
    }
}

Nell'esempio sopra, Jenkins sta leggendo la variabile con:

  • ${env.BUILD_NUMBER} :Utilizzo di env oggetto.
  • ${BUILD_NUMBER} :Usando il nome breve della variabile.

L'output mostra il numero di build corrente come risultato:

Come impostare la variabile d'ambiente in una pipeline Jenkins

Gli utenti possono impostare le variabili di ambiente Jenkins a livello globale o locale. Aggiungi variabili di ambiente globali tramite il dashboard Jenkins, mentre le variabili locali vengono aggiunte utilizzando pipeline dichiarative, imperative e basate su script.

Variabili ambientali globali Jenkins

In Jenkins, qualsiasi pipeline o lavoro può accedere e leggere le variabili di ambiente globali. Per aggiungere una nuova variabile di ambiente globale utilizzando la dashboard Jenkins:

1. Sul lato sinistro della dashboard Jenkins, fai clic su Gestisci Jenkins .

2. In Configurazione di sistema sezione, fai clic su Configura sistema .

3. Scorri verso il basso fino a raggiungere le Proprietà globali sezione. Seleziona la casella accanto a Variabili d'ambiente e fai clic su Aggiungi pulsante per aggiungere una nuova variabile.

4. Immettere il nome e il valore della nuova variabile nei campi appropriati.

5. Fare clic su Salva pulsante per salvare le nuove variabili.

Variabili di ambiente locale Jenkins

È possibile impostare una variabile di ambiente locale in Jenkins utilizzando la pipeline dichiarativa. Questo metodo utilizza l'ambiente environment {} sintassi del blocco:

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

Posizionare questo blocco all'inizio della pipeline significa che la variabile è disponibile per l'uso in qualsiasi fase della pipeline. Posizionarlo in una fase particolare significa che è disponibile solo durante i passaggi di quella fase e solo in quella fase.

Un altro metodo consiste nell'utilizzare un env oggetto in uno script per definire imperativamente una variabile di ambiente:

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

Infine, utilizzando un withEnv([]) {} block imposta una variabile di ambiente locale come parte di una pipeline con script:

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

Ad esempio, questo codice utilizza tutti e tre i metodi descritti sopra in un'unica pipeline per impostare le variabili di ambiente locale:

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}"
                }
            }
        }
    }
}

In questo esempio, stiamo impostando il DATE e NAME variabili di ambiente in modo dichiarativo. DATE è in cima alla pipeline e può essere utilizzato in ogni fase, mentre NAME è nel "Env Variables" fase, quindi possiamo usarlo solo all'interno di quella fase. Il WEBSITE variabile è impostata in modo imperativo e TEST_VARIABLE fa parte di una pipeline con script.

L'output della console per questa pipeline mostra che Jenkins è in grado di accedere e leggere correttamente ogni variabile:

Iniezione di variabili d'ambiente

Aggiunta del plug-in EnvInject to Jenkins ti consente di iniettare variabili di ambiente durante l'avvio della build. Ciò è particolarmente utile quando si crea un progetto freestyle in Jenkins.

Segui i passaggi descritti di seguito per aggiungere il plug-in EnvInject a Jenkins e iniettare variabili:

1. Fai clic su Gestisci Jenkins sul lato sinistro del cruscotto.

2. Nella Configurazione del sistema sezione, fai clic su Gestisci plug-in pulsante.

3. Sotto Disponibile scheda, cerca envinject . Seleziona la casella di controllo accanto a Environment Injector plug-in e fai clic su Installa senza riavvio .

4. Al termine dell'installazione del plug-in, torna alla dashboard. Fai clic su Nuovo elemento collegamento per creare un nuovo progetto, aggiungere un nome e selezionare il progetto Freestyle digitare.

5. Fare clic su OK per creare un nuovo progetto.

6. Scorri verso il basso fino a Build sezione e fai clic su Aggiungi passaggi di costruzione per aprire un menu a discesa con le opzioni disponibili. Seleziona Inietta variabili di ambiente .

7. Se desideri aggiungere variabili di ambiente da un file delle proprietà, aggiungi il percorso del file nel Percorso del file delle proprietà campo. Un'altra opzione consiste nell'aggiungere le nuove variabili direttamente al Contenuto delle proprietà campo, utilizzando il [variable name] = [variable value] sintassi.

8. Fai clic su Salva per confermare l'aggiunta della nuova variabile di ambiente.

Come sovrascrivere la variabile d'ambiente in Jenkins

La pipeline Jenkins consente agli utenti di sovrascrivere le variabili di ambiente, modificando il valore corrente della variabile con uno nuovo.

Il processo di sostituzione segue diverse regole quando si determina la priorità variabile:

  • Il withEnv([]) { } block sovrascrive qualsiasi variabile di ambiente.
  • Variabili impostate utilizzando env l'oggetto non può sovrascrivere quelli impostati utilizzando l'ambiente environment {} blocco.
  • Variabili impostate utilizzando env l'oggetto può sostituire solo altre variabili impostate con env oggetto.

Ubuntu
  1. Impostazione delle variabili d'ambiente della shell | BASH Shell

  2. Fare riferimento a variabili d'ambiente *in* /etc/environment?

  3. Controllo delle variabili di ambiente

  4. Impostazione delle variabili di ambiente Linux

  5. Come leggere le variabili d'ambiente di un processo

Come impostare le variabili d'ambiente in MacOS

Guida definitiva ai tipi di certificati SSL

Come impostare/disimpostare le variabili d'ambiente in Linux

Dove dovrebbero essere impostate le variabili d'ambiente per Jenkins?

Guida dettagliata alle variabili d'ambiente Linux

Variabili d'ambiente Linux