チュートリアル: 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 について」を参照してください。
前提条件
- Azure サブスクリプション:Azure サブスクリプションをお持ちでない場合は、開始する前に無料の Azure アカウントを作成してください。
- Jenkins サーバー: Jenkins サーバーがインストールされていない場合は、Azure に Jenkins サーバーを作成します。
Jenkins コントローラーを準備する
Jenkins ポータルに移動します。
メニューから、[Manage Jenkins]\(Jenkins の管理\) を選択します。
[System Configuration]\(システム構成\) の [Configure System]\(システムの構成\) を選択します。
Jenkins URL が、Jenkins インストール環境の HTTP アドレス (
http://<your_host>.<your_domain>:8080/
) に設定されていることを確認します。メニューから、[Manage Jenkins]\(Jenkins の管理\) を選択します。
[セキュリティ]で、[Configure Global Security]\(グローバル セキュリティの構成\) を選択します。
[エージェント]で、固定ポートを指定し、環境に適したポート番号を入力します。
[保存] を選択します。
Jenkins 作業エージェントを作成する
Jenkins ポータルに移動します。
メニューから、[Manage Jenkins]\(Jenkins の管理\) を選択します。
[System Configuration]\(システム構成\) で、[Manage Nodes and Clouds]\(ノードとクラウドの管理\) を選択します。
メニューから [New Node]\(新しいノード\) を選択します。
[Node Name]\(ノード名\) の値を入力します。
[Permanent Agent]\(永続的なエージェント\) を選択します。
[OK] を選択します。
リモート ルート ディレクトリの値を入力します。 たとえば、
/home/jenkins/work
のように指定します。[ラベル] に「
linux
」という値を追加します (ラベルは、複数のエージェントを 1 つの論理グループにグループ化するために使用されます。linux
はラベルの一例です)。[Launch method]\(起動方法\) を [Launch agent by connecting to the master]\(マスターに接続してエージェントを起動する\) に設定します。
すべての必須フィールドが指定または入力されていることを確認します。
[保存] を選択します。
エージェントの状態ページに、
JENKINS_SECRET
とAGENT_NAME
が表示されます。 次のスクリーン ショットは、値を識別する方法を示しています。 Azure Container Instance を作成するときは両方の値が必要です。
CLI を使用して Azure Container Instance を作成する
az group create コマンドを使用して Azure リソース グループを作成します。
az group create --name my-resourcegroup --location westus
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 コントローラー サーバーに接続されます。Jenkins ダッシュボードに戻り、エージェントの状態を確認します。
Note
Jenkins エージェントは、ポート
5000
経由でコントローラーに接続し、ポートで Jenkins コントローラーへの受信が許可されていることを確認します。
ビルド ジョブを作成する
Jenkins のビルド ジョブが作成され、Azure コンテナー インスタンス上で Jenkins のビルドをデモできるようになりました。
[新しい項目] を選択し、ビルド プロジェクトに aci-demo などの名前を付け、[Freestyle project]\(Freestyle プロジェクト\) を選択し、[OK] を選択します。
[全般] で、[Restrict where this project can be run]\(このプロジェクトを実行できる場所を制限する\) が選択されていることを確認します。 ラベル式に「linux」と入力します。 この構成により、このビルド ジョブが ACI クラウド上で実行されます。
[ビルド] で [ビルド ステップの追加] を選択し、[シェルの実行] を選択します。 コマンドとして
echo "aci-demo"
を入力します。[保存] を選択します。
ビルド ジョブの実行
ビルド ジョブをテストし、Azure Container Instances を観察するには、ビルドを手動で開始します。
[Build Now]\(今すぐビルド\) を選択してビルド ジョブを開始します。 ジョブが開始されると、ジョブの状態が表示されます。
[ビルド履歴] のビルド [#1] をクリックします。
[コンソール出力] を選択して、ビルドの出力を表示します。