【Azure DevOps】セルフホステッドAzure VM(Ubuntu)にエージェントをデプロイするまでの設定方法

※本記事は2019年1月現在の情報です

#はじめに

Azure Pipelinesでビルドを行う際、通常はMicrosoftによってあらかじめ用意された環境(ホステッド)を用いることが多いかと思います。ホステッドには、MicrosoftによってプールされているVMにVS2017やUbuntu、macOSがインストールされたものなどが用意されています。

上記のようなホステッド環境に加えて、Azure Pipelinesでは、自分が持っている環境(セルフホステッド)でもビルドをすることができます(エージェントをデプロイします)。本記事では、Azure VM(Ubuntu)を立ち上げて、エージェントをデプロイするところまでの手順を紹介します。

#Azure VMのデプロイ
今回はお試し用に、AzureポータルでUbuntu Server 18.04 LTSを作成しました。作成の手順は省略します。

<a href="https://imgur.com/9jcQ3li"><img src="https://i.imgur.com/9jcQ3li.png" title="source: imgur.com" /></a>

作成できましたら、PuTTY等のアプリケーションを用いてSSHで接続をし、ログインできることを確認してください。

<a href="https://imgur.com/dnqdgIj"><img src="https://i.imgur.com/dnqdgIj.png" title="source: imgur.com" /></a>

#Personal Access Token(PAT)の取得
Azure DevOpsにアクセスし、画面右上のアイコンをクリックし、**Security**を選択してください。

<a href="https://imgur.com/22tIDyc"><img src="https://i.imgur.com/22tIDyc.png" title="source: imgur.com" /></a>

**+ New Token**をクリックし、トークンの名前を設定し、Createしてください。

<a href="https://imgur.com/11mlj3d"><img src="https://i.imgur.com/11mlj3d.png" title="source: imgur.com" /></a>

Createが完了すると、トークンが発行されるのでコピーをし、メモ帳等に貼り付けておいてください。

<a href="https://imgur.com/EavQWgk"><img src="https://i.imgur.com/EavQWgk.png" title="source: imgur.com" /></a>

#エージェントプールの作成
Azure DevOpsにアクセスし、**Organization settings**から**Agent pools**を選択してください。

<a href="https://imgur.com/C9LX8BZ"><img src="https://i.imgur.com/C9LX8BZ.png" title="source: imgur.com" /></a>

**New agent pool...**をクリックし、名前を決めて**OK**をクリックしてください。

<a href="https://imgur.com/vWOA7KU"><img src="https://i.imgur.com/vWOA7KU.png" title="source: imgur.com" /></a>

**Role**を確認し、**Administrator**になっていることを確認してください。確認が出来たら**Download agent**ボタンをクリックしてください。

<a href="https://imgur.com/lP6dB95"><img src="https://i.imgur.com/lP6dB95.png" title="source: imgur.com" /></a>

Linuxタブを選択すると、エージェントを作成し、構成するための手順が出てきます。。が、こちらがあまりにも不親切なので、細かく手順を紹介します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/267543/f7ce42f9-645a-09ca-adf8-ee73eb6a34d3.png)

#エージェントのデプロイ
1.ログインしたLinux VMにて、以下のコマンドを入力してください。

```
mkdir my-agent && cd my-agent
```

2.Download the agentで発行されたリンクからエージェントをダウンロードします。

```
curl -OL https://vstsagentpackage.azureedge.net/agent/2.144.0/vsts-agent-linux-x64-2.144.0.tar.gz
```

3.ダウンロードしたファイルを解凍します。

```
tar zxvf vsts-agent-linux-x64-2.144.0.tar.gz
```

4.エージェントを構成するためのコマンドを入力してください。

```
./config.sh
```

5.Accept the Team...に**Y**を入力してください

6.Enter server URLに**https://[organization name].visualstudio.com**を入力してください。
https://dev.azure.com/[organization name]の場合もあります。

7.Enter authentication typeで何も入力せずにエンターキーを押してください。

8.Enter personal access tokenでコピーしておいたPATを貼り付けてください。

9.Enter agent poolで作成しておいたエージェントプールの名前を入力してください。

10.Enter agent nameで任意のエージェントの名前を設定してください。

11.Enter work folderで何も入力せず、エンターキーを押してください。

以上でセッティングは完了です。これまでのコマンドラインのスクリーンショットを添付します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/267543/94d1e3ad-1882-ecc4-d9a2-7b06c5e164a0.png)

Azure DevOps側でエージェントが作成されたことを確認してください。

<a href="https://imgur.com/Zubqj5o"><img src="https://i.imgur.com/Zubqj5o.png" title="source: imgur.com" /></a>

以下のコマンドを入力すると、StateをOnlineにすることができます。

```
./run.sh
```

<a href="https://imgur.com/ccnvlMd"><img src="https://i.imgur.com/ccnvlMd.png" title="source: imgur.com" /></a>

#さいごに
本記事では、セルフホステッドVM(Azure VM/Ubuntu)におけるエージェントの構成方法についてまとめました。今回は、エージェントのデプロイまでを実行したため、この状態のままビルドをすることはできませんが、ここまでのプロセスが公式ドキュメントでは非常に分かりづらかったため、このような形でまとめました。セルフホステッド環境でのビルドを実行をしたい際には、参考にして頂ければと思います。

※コメント・補足等ありましたら、是非ともお願いいたします。