GNU/Linux >> Linux の 問題 >  >> Ubuntu

Jenkins環境変数:究極のガイド

はじめに

Jenkinsは、ソフトウェア開発ライフサイクル(SDLC)のさまざまな部分を自動化するために使用されるオープンソースソリューションです。環境変数は、このための貴重なツールを提供し、開発者が使用するたびに値を定義する必要なしに、値を複数回呼び出すことができるようにします。

このチュートリアルでは、Jenkins環境変数を一覧表示および設定するさまざまな方法について説明します。

前提条件

  • インストールされてすぐに使用できるJenkinsのコピー(Ubuntu 18.04、Debian 10、CentOS 8、またはWindows 10にJenkinsをインストールする方法を学びます)。
  • Webブラウザへのアクセス。

Jenkinsの環境変数とは何ですか?

環境変数は、Jenkinsがプロジェクトにアクセスして挿入できるグローバルなキーと値のペアです。 Jenkins環境変数を使用して、プロジェクトごとに同じ値をコーディングする必要がないようにします。

Jenkins環境変数を使用するその他の利点には、セキュリティの向上が含まれます。 Jenkinsは、セキュリティクレデンシャルを変数として使用して、機密データやユーザー生成データをプロジェクトコードから除外できます。

Jenkinsで一般的に使用される変数タイプには、 envがあります。 (環境変数)、 currentBuild params (パラメータ)、および docker (Docker関数へのアクセス)。 Jenkinsは、現在のすべての環境変数をリスト形式で保存します。

Jenkinsで環境変数を確認する方法

すべてのJenkins環境変数を一覧表示する方法は2つあります。

  • Webブラウザを介してリストにアクセスする。
  • Jenkinsシェルコマンドを使用して印刷します。

env-vars.html経由

WebブラウザでJenkins環境変数のリストを表示するには、次のアドレスに移動します。

[Jenkins URL]/env-vars.html

Jenkins URLは、システムのホスト名とJenkinsが使用するポートの組み合わせです。たとえば、デフォルトのポート8080を使用してシステムにログインする場合:

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

set/printenvシェルコマンド経由

もう1つの方法は、シェルコマンドを実行して環境変数を表示するJenkinsジョブを作成することです。このジョブのコンソール出力は、環境変数リストの修正バージョンです。

1. Jenkinsダッシュボードの左側で、[新しいアイテム]をクリックします 。

2.名前を入力します環境変数 s適切なフィールドに入力し、パイプラインを選択します アイテムタイプとして。

3. OKをクリックします 確認します。

4.パイプラインまで下にスクロールします セクションを作成し、次のコードを追加します:

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

4.保存をクリックします パイプラインへの変更を確認します。

5.今すぐ作成をクリックします 左側のリンクをクリックして、新しいパイプラインビルドを作成します。

6.ビルド履歴の下 、ビルド番号をクリックしてビルドオプションにアクセスします。

7.コンソール出力をクリックします 左側にあります。

コンソール出力 ページには、シェルコマンドの出力が表示されます。この場合、これはJenkins環境変数のリストです:

Jenkinsパイプラインで環境変数を読み取る方法

Jenkins環境変数を読み取ってアクセスする方法は2つあります。

  • envの使用 変数名を持つオブジェクト。
  • 短い変数名を使用します。

例として、 BUILD_NUMBERを使用しています 現在のパイプラインビルド番号を含む変数。このコードは、変数を読み取る両方の方法を示しています。

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

上記の例では、Jenkinsは次の変数を読み取っています:

  • ${env.BUILD_NUMBER} envを使用する オブジェクト。
  • ${BUILD_NUMBER} :短い変数名を使用します。

結果として、出力に現在のビルド番号が表示されます:

Jenkinsパイプラインで環境変数を設定する方法

ユーザーは、Jenkins環境変数をグローバルレベルまたはローカルレベルで設定できます。 Jenkinsダッシュボードを使用してグローバル環境変数を追加し、宣言型、命令型、およびスクリプト化されたパイプラインを使用してローカル変数を追加します。

Jenkins地球環境変数

Jenkinsでは、すべてのパイプラインまたはジョブがグローバル環境変数にアクセスして読み取ることができます。 Jenkinsダッシュボードを使用して新しいグローバル環境変数を追加するには:

1. Jenkinsダッシュボードの左側で、[Jenkinsの管理]をクリックします 。

2.システム構成の下 セクションで、システムの構成をクリックします 。

3.グローバルプロパティに到達するまで下にスクロールします セクション。 環境変数の横にあるチェックボックスをオンにします 追加をクリックします ボタンをクリックして新しい変数を追加します。

4.適切なフィールドに新しい変数の名前と値を入力します。

5.保存をクリックします ボタンをクリックして新しい変数を保存します。

Jenkinsローカル環境変数

宣言型パイプラインを使用して、Jenkinsでローカル環境変数を設定できます。このメソッドは、environment {}を使用します ブロック構文:

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

このブロックをパイプラインの先頭に配置することは、変数がパイプラインの任意のステップで使用できることを意味します。特定のステージに配置するということは、そのステージのステップとそのステージでのみ使用できることを意味します。

もう1つの方法は、 envを使用することです。 スクリプト内のオブジェクトを使用して、環境変数を必須に定義します。

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

最後に、 withEnv([]) {}を使用します ブロックは、スクリプト化されたパイプラインの一部としてローカル環境変数を設定します:

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

例として、このコードは、単一のパイプラインで上記の3つのメソッドすべてを使用して、ローカル環境変数を設定します。

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

この例では、 DATEを設定しています。 およびNAME 宣言的に環境変数。 DATE パイプラインの最上位にあり、すべてのステージで使用できますが、 NAME "Env Variables"にあります ステージなので、そのステージ内でのみ使用できます。 WEBSITE 変数は必須であり、 TEST_VARIABLE スクリプト化されたパイプラインの一部です。

このパイプラインのコンソール出力は、Jenkinsがすべての変数に正常にアクセスして読み取ることができることを示しています:

環境変数の注入

EnvInjectプラグインの追加 to Jenkinsを使用すると、ビルドの起動時に環境変数を挿入できます。これは、Jenkinsでフリースタイルプロジェクトを作成するときに特に役立ちます。

以下に概説する手順に従って、EnvInjectプラグインをJenkinsに追加し、変数を挿入します。

1.Jenkinsの管理をクリックします ダッシュボードの左側にあります。

2.システム構成 セクションで、プラグインの管理をクリックします ボタン。

3.利用可能の下 タブで、 envinjectを検索します 。 環境インジェクターの横にあるチェックボックスをオンにします プラグインをクリックし、再起動せずにインストールをクリックします 。

4.プラグインのインストールが完了したら、ダッシュボードに戻ります。 新しいアイテムをクリックします リンクをクリックして新しいプロジェクトを作成し、名前を追加して、フリースタイルプロジェクトを選択します タイプ。

5. OKをクリックします 新しいプロジェクトを作成します。

6.ビルドまで下にスクロールします セクションをクリックし、ビルドステップの追加をクリックします 使用可能なオプションを含むドロップダウンメニューを開きます。 環境変数の挿入を選択します 。

7.プロパティファイルから環境変数を追加する場合は、プロパティファイルパスでファイルへのパスを追加します 分野。もう1つのオプションは、新しい変数をプロパティコンテンツに直接追加することです。 [variable name] = [variable value]を使用するフィールド 構文。

8.保存をクリックします ボタンをクリックして、新しい環境変数の追加を確認します。

Jenkinsで環境変数をオーバーライドする方法

Jenkinsパイプラインを使用すると、ユーザーは環境変数をオーバーライドして、変数の現在の値を新しい値に変更できます。

オーバーライドプロセスは、変数の優先度を決定するときにいくつかのルールに従います。

  • withEnv([]) { } ブロックは環境変数を上書きします。
  • envを使用して設定された変数 オブジェクトは、environment {}を使用して設定されたものをオーバーライドできません ブロックします。
  • envを使用して設定された変数 オブジェクトは、 envで設定された他の変数のみをオーバーライドできます オブジェクト。

Ubuntu
  1. 一時的な環境を設定する ($PATH)

  2. Linux 環境変数の設定

  3. プロセスの環境変数を読み取る方法

  1. シェル環境変数の設定| BASHシェル

  2. * in * / etc / environment?で環境変数を参照する

  3. 環境変数をDockerコンテナに渡す方法

  1. Ubuntu に Flask をインストールするための究極のガイド

  2. 環境変数の確認

  3. 多くの環境変数の設定を解除する方法