②Azure DevOpsを利用してAllure x Pytestを使ったテスト自動化環境構築(self-hosted-agentセットアップ編)
はじめに
こんにちは、自動化エンジニアの竹川です。
前回のWindows Server構築編はいかがでしたか?今回も引き続き「Azure DevOpsを利用してAllure x Pytestを使ったテスト自動化環境構築」をご紹介したいと思います。
関連記事
本記事の目的
本記事は『①Azure DevOpsを利用してAllure x Pytestを使ったテスト自動化環境構築(Windows Server構築編)』で構築した仮想サーバーにself-hosted-agentをセットアップの方法を 解説させていただきます。self-hosted-agentを使う目的としてはお客様特有のアプリケーション、製品などをインストールしてパイプラインを実行するなどする場合に有効となるためです。 それ以外にも実際にエラーが発生した時の切り分けとして実機に入って調査できる事が大きなメリットがあります。
環境構築する工程が多いですが、お付き合いいただけると幸いです。
Azure DevOps 事前準備
1. Azure DevOps organization、Project作成
Azure Portalへログインし、ヘッダにある検索窓で「Azure DevOps organizations」を入力 フォームのサービスに「Azure DevOps organizations」が表示されたら該当部分をクリック
「My Azure DevOps Organizations」をクリック
「新しい組織の作成」ボタンをクリック
「Continue」ボタンをクリック
Azure DevOps organization、Area、画像認証の値を入力し、「Continue」ボタンをクリック
Project nameに任意の文字列を入力、 visibilityはデフォルト「Private」のままで「+ Create project」ボタンをクリック
プロジェクト作成完了
2. Personal Access Token作成
Azure DevOps > Projectを選択後、Projectのトップページにてヘッダにある人型アイコン > Personal Access Tokenの順にクリック
Personal Access Tokens一覧にて「New Token」ボタンをクリック
Nameに任意の文字を入力、Organization前項で作成した組織名を選択、Expiration(UTC)適切なトークンの期限を入力 Socopesは「Custom Defined」を選択、Agent PoolsはRead & manageを選択して「Create」ボタンをクリック
※設定の意図としてはパイプラインを動かすために必要な最低限の権限にするためです。
画面に「Success!」が表示されたらテキストにあるトークンを控えてください。
※トークンは画面を閉じてしまうと二度と表示されないため、注意してください。
3. Agent pool作成
左メニューの下部にある「Project settings」をクリック
更にメニューが表示された「Agent Pools」をクリック
「Add pool」ボタンをクリック
Pool typeを「Self-hosted」を選択、Nameに任意の文字列を入力、Grant access permission to all pipelinesチェックを入れて「Create」ボタンをクリック ※Nameの文字列を控えてください。
Agent Pools一覧にて先ほど作成したpoolをクリック
Agentsタブをクリック
「New agent」ボタンをクリック
x64を選択し、「Download」ボタンをクリック
※vsts-agent-win-x64-x.xxx.x.zipというファイルがダウンロードされるので控えてください。
Create the agent、Configure the agent、Optionally run the agent interactivelyのスクリプトをコピーして控えてください。
self-hosted-agentセットアップ
第1回で構築したWindows Serverへログイン
「C:\Users{対象ユーザー}\Downloads」に前項でダウンロードした「vsts-agent-win-x64-x.xxx.x.zip」を設置
Powershellを管理者権限で起動し、Cドライブ直下へ移動
cd C:\
前項で控えたコマンドを実行
mkdir agent ; cd agent
焦らずに一行ずつ実行してください。
Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("$HOME\Downloads\vsts-agent-win-x64-2.202.1.zip", "$PWD")
設定用のコマンドを実行します。ここから対話型になります。
.\config.cmd
>> 接続:
サーバー URL を入力する > https://dev.azure.com/{組織名} ← Azure DevOpsの組織名を入力
認証の種類 を入力する (PAT の場合は、Enter キーを押します) >
個人用アクセス トークン を入力する > ********************************************* ← 前項で控えたPersonal Access Tokenを入力
サーバーに接続しています ...
>> エージェントを登録する:
エージェント プール を入力する (default の場合は、Enter キーを押します) > ← 前項で控えたAgent Poolの名称を入力
エージェント名 を入力する (WinAgent01 の場合は、Enter キーを押します) > ← エージェント名は変更がなければEnterキーを入力
ツール機能をスキャンしています。
サーバーに接続しています。
エージェントが正常に追加されました
エージェントの接続をテストしています。
作業フォルダー を入力する (_work の場合は、Enter キーを押します) > ← パイプラインで利用する作業フォルダとなりますが、特に変更がなければEnterキーを入力
2022-05-05 06:38:06Z: 設定が保存されました。
エージェントをサービスとして実行しますか? (Y/N) を入力する (N の場合は、Enter キーを押します) > Y ← Yを入力
サービスに使用するユーザー アカウント を入力する (NT AUTHORITY\NETWORK SERVICE の場合は、Enter キーを押します) > opsuser ← Agentが動くユーザー(任意)
アカウント WinAgent01\opsuser のパスワード を入力する > ************* ← ユーザーアカウントのパスワード
'WinAgent01\opsuser' に対してファイル アクセス許可を付与しています。
サービス vstsagent.xxxxx.PytestPoc-Readiness-Pool.WinAgent01 が正常にインストールされました
サービス vstsagent.xxxxx.PytestPoc-Readiness-Pool.WinAgent01 で回復オプションが正常に設定されました
サービス vstsagent.xxxxx.PytestPoc-Readiness-Pool.WinAgent01 が正常に遅延自動開始に設定されました
サービス vstsagent.xxxxx.PytestPoc-Readiness-Pool.WinAgent01 は正常に構成されました
whether to prevent service starting immediately after configuration is finished? (Y/N) を入力する (N の場合は、Enter キ ーを押します) > Y ← Yを入力
PS C:\agent>
runコマンドを実行してAzure DevOpsのサービスに接続しているかを確認してください。下記のように表示されたら問題ありません。
.\run.cmd
Azure DevOpsのコンソールに戻り 左メニュー 設定 > Agent Poolsをクリックし、Agent Pools一覧で作成したAgent Poolを選択 > Agentsタブをクリック 下記のようにonlineが表示されたら完了となります。
次回のお知らせ
今回はここまでとなります。
Azure DevOpsの設定とサーバーへのエージェントインストールはWEB画面の設定とサーバーの設定と行き来して大変でしたね!
個人的にはAzure PortalからAzure DevOpsへの導線が複雑で一回で覚えられなかった印象がありました。これは触ってなれていただくしかないのでこれを機にAzureのUIに慣れてください!
次回は、【③Azure DevOpsを利用してAllure x Pytestを使ったテスト自動化環境構築(Python x Allure環境構築編)】 をご紹介したいと思います!
最後までお読みいただき、ありがとうございました。
【次回の記事はこちら】
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/