チュートリアル: Azure Container Instances を Jenkins ビルド エージェントとして使用する

重要

多くの Azure サービスには Jenkins プラグインがあります。これらのプラグインの一部は、2024 年 2 月 29 日時点ではサポート対象外となります。 Azure CLI は、Jenkins と Azure サービスを統合するために現在推奨されている方法です。 詳細については、「Azure 用の Jenkins プラグイン」を参照してください。

Azure Container Instances (ACI) は、コンテナー化ワークロードを実行するためのバースト対応のオンデマンド分離環境を提供します。 これらの特性により、ACI は大規模な環境で Jenkins ビルド ジョブを実行するための優れたプラットフォームを作成します。 この記事では、ACI をデプロイし、Jenkins コントローラー用の永続的なビルド エージェントとして追加する方法について説明します。

Azure Container Instances の詳細については、「Azure Container Instances について」を参照してください。

前提条件

Jenkins コントローラーを準備する

  1. Jenkins ポータルに移動します。

  2. メニューから、[Manage Jenkins]\(Jenkins の管理\) を選択します。

  3. [System Configuration]\(システム構成\)[Configure System]\(システムの構成\) を選択します。

  4. Jenkins URL が、Jenkins インストール環境の HTTP アドレス (http://<your_host>.<your_domain>:8080/) に設定されていることを確認します。

  5. メニューから、[Manage Jenkins]\(Jenkins の管理\) を選択します。

  6. [セキュリティ]で、[Configure Global Security]\(グローバル セキュリティの構成\) を選択します。

  7. [エージェント]で、固定ポートを指定し、環境に適したポート番号を入力します。

    構成の例: Configure TCP port

  8. [保存] を選択します。

Jenkins 作業エージェントを作成する

  1. Jenkins ポータルに移動します。

  2. メニューから、[Manage Jenkins]\(Jenkins の管理\) を選択します。

  3. [System Configuration]\(システム構成\) で、[Manage Nodes and Clouds]\(ノードとクラウドの管理\) を選択します。

  4. メニューから [New Node]\(新しいノード\) を選択します。

  5. [Node Name]\(ノード名\) の値を入力します。

  6. [Permanent Agent]\(永続的なエージェント\) を選択します。

  7. [OK] を選択します。

  8. リモート ルート ディレクトリの値を入力します。 たとえば、/home/jenkins/work のように指定します。

  9. [ラベル] に「linux」という値を追加します (ラベルは、複数のエージェントを 1 つの論理グループにグループ化するために使用されます。linux はラベルの一例です)。

  10. [Launch method]\(起動方法\)[Launch agent by connecting to the master]\(マスターに接続してエージェントを起動する\) に設定します。

  11. すべての必須フィールドが指定または入力されていることを確認します。

    Example Jenkins agent configuration

  12. [保存] を選択します。

  13. エージェントの状態ページに、JENKINS_SECRETAGENT_NAME が表示されます。 次のスクリーン ショットは、値を識別する方法を示しています。 Azure Container Instance を作成するときは両方の値が必要です。

    The build-agent secret is displays after its successful creation.

CLI を使用して Azure Container Instance を作成する

  1. az group create コマンドを使用して Azure リソース グループを作成します。

    az group create --name my-resourcegroup --location westus
    
  2. az container create を使用して Azure コンテナー インスタンスを作成します。 プレースホルダーは、作業エージェントの作成時に取得した値に置き換えます。

    az container create \
      --name my-dock \
      --resource-group my-resourcegroup \
      --ip-address Public --image jenkins/inbound-agent:latest \
      --os-type linux \
      --ports 80 \
      --command-line "jenkins-agent -url http://jenkinsserver:port <JENKINS_SECRET> <AGENT_NAME>"
    

    http://jenkinsserver:port<JENKINS_SECRET>、および <AGENT_NAME> を Jenkins コントローラーとエージェントの情報に置き換えます。 コンテナーは、起動すると自動的に Jenkins コントローラー サーバーに接続されます。

  3. Jenkins ダッシュボードに戻り、エージェントの状態を確認します。

    Agent has started successfully

    Note

    Jenkins エージェントは、ポート 5000 経由でコントローラーに接続し、ポートで Jenkins コントローラーへの受信が許可されていることを確認します。

ビルド ジョブを作成する

Jenkins のビルド ジョブが作成され、Azure コンテナー インスタンス上で Jenkins のビルドをデモできるようになりました。

  1. [新しい項目] を選択し、ビルド プロジェクトに aci-demo などの名前を付け、[Freestyle project]\(Freestyle プロジェクト\) を選択し、[OK] を選択します。

    Box for the name of the build job, and list of project types

  2. [全般] で、[Restrict where this project can be run]\(このプロジェクトを実行できる場所を制限する\) が選択されていることを確認します。 ラベル式に「linux」と入力します。 この構成により、このビルド ジョブが ACI クラウド上で実行されます。

  3. [ビルド][ビルド ステップの追加] を選択し、[シェルの実行] を選択します。 コマンドとして echo "aci-demo" を入力します。

  4. [保存] を選択します。

ビルド ジョブの実行

ビルド ジョブをテストし、Azure Container Instances を観察するには、ビルドを手動で開始します。

  1. [Build Now]\(今すぐビルド\) を選択してビルド ジョブを開始します。 ジョブが開始されると、次の図のような状態が表示されます。

  2. [ビルド履歴] のビルド [#1] をクリックします。

  3. [コンソール出力] を選択して、ビルドの出力を表示します。

次のステップ