GNU/Linux >> Znalost Linux >  >> Ubuntu

Jenkins Environment Variables:Ultimate Guide

Úvod

Jenkins je open-source řešení používané k automatizaci různých částí životního cyklu vývoje softwaru (SDLC). Proměnné prostředí k tomu poskytují cenný nástroj a umožňují vývojářům vyvolat hodnotu vícekrát, aniž by ji museli před každým použitím definovat.

V tomto tutoriálu probereme různé způsoby, jak vypsat a nastavit proměnné prostředí Jenkins.

Předpoklady

  • Kopie Jenkins nainstalovaná a připravená k použití (přečtěte si, jak nainstalovat Jenkins na Ubuntu 18.04, Debian 10, CentOS 8 nebo Windows 10).
  • Přístup k webovému prohlížeči.

Co jsou proměnné prostředí v Jenkins?

Proměnné prostředí jsou globální páry klíč–hodnota, ke kterým může Jenkins přistupovat a vkládat je do projektu. Použijte proměnné prostředí Jenkins, abyste nemuseli kódovat stejné hodnoty pro každý projekt.

Mezi další výhody používání proměnných prostředí Jenkins patří vylepšené zabezpečení. Jenkins může používat bezpečnostní pověření jako proměnné, čímž chrání citlivá nebo uživatelem generovaná data mimo projektový kód.

Mezi běžně používané typy proměnných v Jenkins patří env (proměnné prostředí), currentBuild , params (parametry) a docker (přístup k funkcím Docker). Jenkins ukládá všechny aktuální proměnné prostředí ve formě seznamu.

Jak zobrazit proměnné prostředí v Jenkinsovi

Existují dva způsoby, jak vypsat seznam všech proměnných prostředí Jenkins:

  • Přístup k seznamu prostřednictvím webového prohlížeče.
  • Pomocí příkazů prostředí Jenkins k vytištění.

Přes env-vars.html

Chcete-li zobrazit seznam proměnných prostředí Jenkins ve webovém prohlížeči, přejděte na následující adresu:

[Jenkins URL]/env-vars.html

Jenkins URL je kombinací názvu hostitele vašeho systému a portu používaného Jenkinsem. Například při přihlašování do systému pomocí výchozího portu 8080:

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

Přes příkaz set/printenv Shell

Další metodou je vytvoření úlohy Jenkins, která provádí příkaz shellu k zobrazení proměnných prostředí. Výstup konzole této úlohy je upravená verze seznamu proměnných prostředí.

1. Na levé straně ovládacího panelu Jenkins klikněte na Nová položka .

2. Zadejte název Proměnná prostředí s v příslušném poli a vyberte Potrubí jako typ položky.

3. Klikněte na OK pro potvrzení.

4. Přejděte dolů na Potrubí a přidejte následující kód:

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

4. Klikněte na Uložit pro potvrzení změn v kanálu.

5. Klikněte na tlačítko Vytvořit nyní odkaz na levé straně pro vytvoření nového sestavení potrubí.

6. V části Historie sestavení , kliknutím na číslo sestavení otevřete možnosti sestavení.

7. Klikněte na Výstup konzoly na levé straně.

Výstup konzoly stránka zobrazuje výstup příkazu shell. V tomto případě se jedná o seznam proměnných prostředí Jenkins:

Jak číst proměnné prostředí v Jenkins Pipeline

Existují dva způsoby, jak číst a přistupovat k proměnným prostředí Jenkins:

  • Pomocí env objekt s názvem proměnné.
  • Použití krátkého názvu proměnné.

Jako příklad používáme číslo BUILD_NUMBER proměnná, která obsahuje aktuální číslo sestavení kanálu. Tento kód demonstruje obě metody čtení proměnné:

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

Ve výše uvedeném příkladu Jenkins čte proměnnou pomocí:

  • ${env.BUILD_NUMBER} :Pomocí env objekt.
  • ${BUILD_NUMBER} :Použití krátkého názvu proměnné.

Výstup zobrazuje aktuální číslo sestavení jako výsledek:

Jak nastavit proměnnou prostředí v Jenkinsově potrubí

Uživatelé mohou nastavit proměnné prostředí Jenkins na globální nebo místní úrovni. Přidejte globální proměnné prostředí prostřednictvím ovládacího panelu Jenkins, zatímco místní proměnné se přidávají pomocí deklarativních, imperativních a skriptovaných kanálů.

Proměnné globálního prostředí Jenkins

V Jenkins může jakýkoli kanál nebo úloha přistupovat a číst globální proměnné prostředí. Chcete-li přidat novou globální proměnnou prostředí pomocí ovládacího panelu Jenkins:

1. Na levé straně ovládacího panelu Jenkins klikněte na Spravovat Jenkins .

2. V části Konfigurace systému klikněte na Konfigurovat systém .

3. Přejděte dolů, dokud se nedostanete na Globální vlastnosti sekce. Zaškrtněte políčko vedle položky Proměnné prostředí a klikněte na tlačítko Přidat pro přidání nové proměnné.

4. Do příslušných polí zadejte název a hodnotu nové proměnné.

5. Klikněte na tlačítko Uložit tlačítko pro uložení nových proměnných.

Proměnné místního prostředí Jenkins

Proměnnou místního prostředí můžete nastavit v Jenkins pomocí deklarativního kanálu. Tato metoda využívá environment {} syntaxe bloku:

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

Umístění tohoto bloku na začátek kanálu znamená, že proměnná je k dispozici pro použití v kterémkoli kroku kanálu. Umístění v určité fázi znamená, že je k dispozici pouze během kroků této fáze a pouze v této fázi.

Další metodou je použití env objekt ve skriptu pro nezbytnou definici proměnné prostředí:

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

Nakonec pomocí withEnv([]) {} block nastaví proměnnou místního prostředí jako součást skriptovaného kanálu:

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

Jako příklad tento kód používá všechny tři výše uvedené metody v jediném kanálu k nastavení proměnných místního prostředí:

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

V tomto příkladu nastavujeme DATE a NAME proměnné prostředí deklarativně. DATE je v horní části kanálu a lze jej použít v každé fázi, zatímco NAME je v "Env Variables" fázi, takže ji můžeme použít pouze v této fázi. WEBSITE proměnná je nastavena imperativně a TEST_VARIABLE je součástí skriptovaného kanálu.

Výstup konzoly pro tento kanál ukazuje, že Jenkins je schopen úspěšně přistupovat a číst každou proměnnou:

Proměnné prostředí vstřikování

Přidání pluginu EnvInject to Jenkins vám umožňuje vložit proměnné prostředí během spouštění sestavení. To je užitečné zejména při vytváření freestyle projektu v Jenkins.

Chcete-li přidat plugin EnvInject do Jenkins a vložit proměnné, postupujte podle níže uvedených kroků:

1. Klikněte na Spravovat Jenkins na levé straně palubní desky.

2. V Konfigurace systému klikněte na Spravovat pluginy tlačítko.

3. V části Dostupné na kartě, vyhledejte envinject . Zaškrtněte políčko vedle položky Environment Injector plugin a klikněte na Instalovat bez restartu .

4. Jakmile plugin dokončí instalaci, vraťte se na řídicí panel. Klikněte na Nová položka vytvořte nový projekt, přidejte název a vyberte Projekt Freestyle typ.

5. Klikněte na OK vytvořit nový projekt.

6. Přejděte dolů na Sestavit a klikněte na Přidat kroky sestavení otevřete rozevírací nabídku s dostupnými možnostmi. Vyberte možnost Vložit proměnné prostředí .

7. Pokud chcete přidat proměnné prostředí ze souboru vlastností, přidejte cestu k souboru do Cesta k souboru vlastností pole. Další možností je přidat nové proměnné přímo do Obsahu vlastností pole pomocí [variable name] = [variable value] syntaxe.

8. Klikněte na tlačítko Uložit tlačítko pro potvrzení přidání nové proměnné prostředí.

Jak přepsat proměnnou prostředí v Jenkins

Jenkinsův kanál umožňuje uživatelům přepsat proměnné prostředí a změnit aktuální hodnotu proměnné za novou.

Proces přepisování se při určování priority proměnné řídí několika pravidly:

  • withEnv([]) { } blok přepíše jakoukoli proměnnou prostředí.
  • Proměnné nastavené pomocí env objekt nemůže přepsat ty nastavené pomocí environment {} blokovat.
  • Proměnné nastavené pomocí env objekt může pouze přepsat ostatní proměnné nastavené pomocí env objekt.

Ubuntu
  1. Konečný průvodce instalací Flask na Ubuntu

  2. Kontrola proměnných prostředí

  3. Nastavení proměnných prostředí Linuxu

  1. Nastavení proměnných prostředí prostředí | BASH Shell

  2. Odkazování na proměnné prostředí *v* /etc/environment?

  3. Jak předávat proměnné prostředí do kontejnerů Docker

  1. Nastavit dočasné prostředí ($PATH)

  2. Jak zrušit nastavení mnoha proměnných prostředí

  3. Jak číst proměnné prostředí procesu