環境 - 仮想マシン リソース
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
仮想マシン (VM) リソースを使用して、YAML パイプラインで複数のマシンにわたるデプロイを管理します。 VM リソースを使用すると、ローリング デプロイのためのエージェントを独自のサーバーにインストールできます。
VM リソースは環境に接続します。 環境を定義したら、デプロイでターゲットに VM を追加できます。 環境内のデプロイ履歴ビューでは、VM からパイプラインへの追跡可能性が提供されます。
前提条件
少なくとも Basic ライセンスと、次の領域へのアクセス権を持っている必要があります。
- パイプラインに接続されているリポジトリ
- 環境に接続する VM
Azure Pipelines のセキュリティの詳細については、「パイプライン リソース」を参照してください。
VM を環境に追加するには、対応する配置プールの管理者ロールが必要です。 配置プールは組織が使用できる一連のターゲット サーバーです。 配置プールと環境のアクセス許可の詳細を確認してください。
注意
配置グループ エージェントを構成している場合、または VM 環境リソースの登録時にエラーが発生した場合は、PAT スコープを [すべてのアクセス可能な組織] に設定する必要があります。
VM リソースを作成する
注意
この同じプロセスを使用して、登録スクリプトで物理マシンを設定できます。
VM リソースを追加する最初のステップは、環境を定義することです。
環境を定義する
- 最初の環境に応じて、[環境の作成] または [新しい環境] を選択します。
- 環境の [名前] (必須) と [説明] を追加します。
- 新しい環境を保存します。
リソースの追加
環境を選択して、[リソースの追加] を選択します。
[リソース] の種類に [仮想マシン] を選択します。 [次へ] を選択します。
[オペレーティング システム] で Windows または Linux を選択します。
登録スクリプトをコピーします。 スクリプトは、Windows を選択した場合は PowerShell スクリプトに、Linux を選択した場合は Linux スクリプトになります。
この環境に登録する必要があるターゲット仮想マシンごとに、コピーしたスクリプトを実行します。
- Windows にインストールする場合は、PowerShell 管理者がスクリプトを実行する必要があります。
- Linux にインストールする場合は、実行可能スクリプトをダウンロードして実行する権限が必要です。
注意
- サインインしたユーザーの個人用アクセス トークン (PAT) がスクリプトに含まれます。 PAT はスクリプトを生成した日に有効期限が切れます。
- VM で既に他のエージェントが実行されている場合は、エージェントに一意の名前を指定して環境に登録します。
- エージェント スクリプトのインストールの詳細については、「セルフホステッド Linux エージェント」と「セルフホステッド Windows エージェント」を参照してください。 VM リソースのエージェントスクリプトは、セルフホステッド エージェントのスクリプトと似ています。また、同じコマンドを使用できます。
VM が登録されると、環境の [リソース] タブの下に環境リソースとして表示されます。
VM をさらに追加するには、もう一度スクリプトをコピーします。 [リソースの追加] > [仮想マシン] の順に選択します。 Windows と Linux のスクリプトは、環境に追加されるすべての VM で同じです。
VM スクリプトが正常にインストールされると、環境のリソースのリストに VM が表示されます。
パイプラインで VM を使用する
環境を参照して、パイプライン内の VM をターゲットにします。 既定では、パイプライン ジョブは resourceName
を使用する環境に対して定義されたすべての VM に対して実行されます。
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceName: VMenv
resourceType: virtualMachine
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
注意
resourceType
の値では大文字と小文字が区別されます。 大文字と小文字を正しく指定しないと、環境内で一致するリソースが見つかりません。 詳細については、YAML スキーマの説明を参照してください。
環境から特定の仮想マシンを選択し、その resourceName
で指定することで、デプロイのみを受け取ることができます。 たとえば、VMenv
環境の USHAN-PC
という名前の仮想マシン リソースのみをデプロイのターゲットにするには、resourceName
パラメーターを追加して、値 USHAN-PC
を指定します。
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
resourceName: USHAN-PC # only deploy to the VM resource named USHAN-PC
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
デプロイ ジョブの詳細については、YAML スキーマの説明を参照してください。
タグを追加および管理する
タグを使用すると、環境内の特定の VM のセットをデプロイのターゲットにできます。 タグは、対話型登録スクリプトの一部として、または UI を使用して VM に追加できます。 タグはそれぞれ 256 文字以内に制限されています。 使用できるタグの数に制限はありません。
VM リソースの [その他の操作] を選択して、リソース ビューから UI のタグを追加または削除します。
複数のタグを選択すると、すべてのタグを含む VM がパイプラインで使用されます。 たとえば、このパイプラインは windows
タグと prod
タグの両方がある VM をターゲットにします。 これらのタグのうち、いずれか 1 つだけが VM にある場合、その VM はターゲットにされません。
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
tags: windows,prod # only deploy to virtual machines with both windows and prod tags
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
デプロイ戦略を適用する
デプロイ戦略を適用して、アプリケーションのロールアウト方法を定義します。VM の runOnce
戦略と rolling
戦略は両方ともサポートされています。
デプロイ戦略とライフサイクル フックの詳細については、「デプロイ ジョブ/デプロイ戦略」を参照してください。
デプロイ履歴を表示する
[デプロイ] タブを選択して、コミットと作業項目の完全な追跡可能性と、環境およびリソースごとのクロスパイプライン デプロイ履歴を確認します。
環境から VM を削除する
Windows 環境
Windows 環境から VM を削除するには、次のコマンドを実行します。 次のタスクを実行していることを確認します。
- 管理者の PowerShell コマンド プロンプトからコマンドを実行する
- それぞれのマシンでコマンドを実行する
- 環境登録コマンドが実行されたフォルダー パスと同じフォルダー パスでコマンドを実行する
./config.cmd remove
Linux 環境
Linux 環境から VM を削除するには、それぞれのマシンで次のコマンドを実行します。
./config.sh remove
既知の制限事項
ステージを再試行すると、失敗したターゲットだけでなく、すべての VM でデプロイが再実行されます。
関連記事
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示