2024年3月10日日曜日

Azure Devops で独自のエージェントを docker で動かす方法

Azure Devops で独自のエージェントを docker で動かす方法

概要

Microsoft が公式で提供している docker イメージがあるのですがこれはもうすでにメンテナンスされていません
非公式ではありますがメンテナンスされているイメージがあるので今回はそれを使ってみました

環境

最初に

公式の見解としては自分でビルドしてくださいというのが方針のようです
https://learn.microsoft.com/ja-jp/azure/devops/pipelines/agents/docker?view=azure-devops

なので今回紹介するイメージがメンテナンスされなくなった場合などは公式の手順を参考に自分でイメージをビルドして使いましょう

docker 上でエージェントの起動

コマンドは以下のとおりです
エージェントの状態を保持するために /var/azdo/_work をホスト側のディレクトリでマウントしておきます

  • mkdir work
docker run \
  -e AZDO_URL=https://dev.azure.com/xxx \
  -e AZDO_TOKEN=xxx\
  -e AZDO_AGENT=docker \
  -e AZDO_POOL=test_pool \
  -v $(pwd)/work:/azdo/agent/_work \
  -it czon/azdo-agent:ubuntu-20.04-3.234.0

-e AZDO_WORK=/var/azdo/$AZDO_AGENT というオプションで任意のワークディレクリを指定できるのですがなぜかこれを指定すると mkdir: cannot create directory '': No such file or directory になるので指定を外しました

起動ログ

起動が完了した際のログは以下のとおりです

Configure Agent ...

  ___                      ______ _            _ _
 / _ \                     | ___ (_)          | (_)
/ /_\ \_____   _ _ __ ___  | |_/ /_ _ __   ___| |_ _ __   ___  ___
|  _  |_  / | | | '__/ _ \ |  __/| | '_ \ / _ \ | | '_ \ / _ \/ __|
| | | |/ /| |_| | | |  __/ | |   | | |_) |  __/ | | | | |  __/\__ \
\_| |_/___|\__,_|_|  \___| \_|   |_| .__/ \___|_|_|_| |_|\___||___/
                                   | |
        agent v3.234.0             |_|          (commit 21ca259)


>> End User License Agreements:

Building sources from a TFVC repository requires accepting the Team Explorer Everywhere End User License Agreement. This step is not required for building sources from Git repositories.

A copy of the Team Explorer Everywhere license agreement can be found at:
  /azdo/agent/license.html


>> Connect:

Connecting to server ...

コンパネでエージェントの確認

Azure Devops のコンパネでもエージェントが動作しているのが確認できます

少し説明

  • AZDO_URL・・・組織名付きで Azure Devops の URL を指定します、エージェントからは指定のエンドポイントにアクセスできる必要があります
  • AZDO_TOKEN・・・Azure Devops で作成した PAT (個人アクセストークン) を指定します
  • AZDO_AGENT・・・エージェント名を入力します
  • AZDO_POOL・・・エージェントを登録するプール名を指定します、デフォルトでは default プールに作成されます

PAT の取得

こちらを参考に取得しておきましょう

使用できるタグ

現状だと Ubuntu20 が最新のようです
詳しくは dockerhub のタグ情報を確認してください
https://hub.docker.com/r/czon/azdo-agent/tags

最後に

Azure Devops のパイプラインエージェントを docker で起動してみました
非公式のイメージですが自分でビルドするのが面倒な場合には便利です

基本はバイナリですが docker イメージにしておけば k8s 上でも動作可能なので便利です

参考サイト

0 件のコメント:

コメントを投稿