Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
Azure Pipelines 環境 は、パイプラインからのデプロイでターゲットにできる リソース のグループです。 一般的な環境には、開発、テスト、運用などがあります。
物理マシンまたは仮想マシン (VM) リソースを環境に追加するには、マシンにエージェントをインストールします。 その後、環境のデプロイ履歴によって、各マシンからの追跡可能性が提供されます。 この記事では、環境を定義して使用して、VM またはサーバー リソース間のデプロイを管理する方法について説明します。
Note
Azure DevOps 環境は、YAML パイプラインでのみ使用できます。 クラシック パイプラインの場合、 デプロイ グループ も同様の機能を提供します。
前提条件
この記事の手順を実行するには、次の前提条件が必要です。
- パイプラインを作成できるソース リポジトリへのアクセス。 詳細については、「 サポートされているソース リポジトリ」を参照してください。
- デプロイ プールの管理者ロール。Azure DevOps 組織が使用できる一連のターゲット サーバー。 詳細については、「 Azure Pipelines でのデプロイ グループのセキュリティの設定」を参照してください。
- 環境を含む Azure DevOps プロジェクトのプロジェクト管理者またはビルド管理者 アクセス権 。 詳細については、「 リソースセキュリティ」を参照してください。
- 環境に接続する VM で実行可能スクリプトをダウンロードして実行するためのアクセスとアクセス許可。
環境を作成して VM を追加する
VM または物理マシンを環境に追加するには、次の手順に従います。
VM リソースを使用して環境を作成する
Azure DevOps プロジェクトで、[パイプライン]>[環境] の順に選択し、[環境を作成] または [新規環境] の順に選択します。
[ 新しい環境 ] 画面で、 名前 とオプションの説明を入力 します。
Resourceで、仮想マシンを選択し、次へ選択。
登録スクリプトをコピーする
VM リソースのエージェント スクリプトは、セルフホステッド エージェントのスクリプトに似ていますが、同じコマンドを使用します。 スクリプトには、サインインしているユーザーの Azure DevOps 個人用アクセス トークン (PAT) が含まれます。このトークンは、スクリプトが生成されてから 3 時間後に期限切れになります。 PAT は、エージェントをインストールする場合にのみ必要です。
Note
デプロイ グループ エージェントを構成する場合、または VM 環境リソースを登録するときにエラーが発生した場合は、PAT アクセス スコープをユーザー設定>でアクセス可能なすべての組織に設定してみてください。
[ 仮想マシン リソース ] 画面で、[ オペレーティング システム] で [Linux] を選択します。
アイコンを選択して Linux 登録スクリプトをコピーします。
このスクリプトは、環境に追加されたすべての Linux VM で同じです。 エージェント スクリプトのインストールの詳細については、「 セルフホステッド Linux エージェントを参照してください。
VM でコピーした登録スクリプトを実行する
を選択してを閉じます。 新しい環境が作成されます。 PAT の有効期限が切れた場合など、スクリプトをもう一度コピーするには、環境のページで [ リソースの追加] をもう一度選択します。
環境に登録する各ターゲット VM でコピーしたスクリプトを実行します。
Note
VM に既に別のエージェントが実行されている場合は、環境に登録する新しい
agentの一意の名前を指定します。VM が登録されたら、Azure Pipelines 環境ページの [ リソース ] タブに VM が表示されることを確認します。
YAML パイプラインで環境を使用する
YAML デプロイ ジョブ内の VM リソースをターゲットにするには、その環境を参照します。 YAML デプロイ ジョブの詳細については、YAML パイプライン スキーマ リファレンスの「デプロイ ジョブと jobs.deployment 定義」を参照してください。
次のパイプライン デプロイ ジョブは、 VMEnv 環境の VM でのみ実行されます。
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VMenv
environment: VMenv
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
VM リソース名を環境名に追加することで、環境内の特定の VM をターゲットにすることができます。 次の例では、RESOURCE-PC環境の VMenv という名前の VM リソースにのみデプロイします。
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to RESOURCE-PC in VMenv
environment: VMenv.RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
jobs-deployment-environment キーワードの完全な構文を使用し、resourceNameに一覧表示して特定の環境 VM にデプロイすることもできます。
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to RESOURCE-PC in VMenv with full syntax
environment:
name: VMenv
resourceType: virtualMachine
resourceName: RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Note
-
resourceTypeなどのvirtualMachine値では、大文字と小文字が区別されます。 大文字と小文字が正しくないと、一致するリソースが見つかりません。 - ステージを再試行すると、失敗したターゲットだけでなく、指定されたすべての VM でデプロイが再実行されます。
デプロイ戦略
デプロイ ジョブでは、デプロイ strategy を適用して、アプリケーションをロールアウトする方法を定義します。 VM では、 runOnce と rolling の両方の戦略がサポートされています。 デプロイ戦略とライフサイクル フックの詳細については、「 デプロイ戦略を参照してください。
Permissions
環境を使用するパイプラインを初めて実行するときは、エージェント プールと環境にアクセスするためのパイプラインのすべての実行に対するアクセス許可を付与する必要があります。 パイプライン実行の概要画面でジョブの横にある待機中シンボルを選択し、[許可] を選択して必要なアクセス許可を付与します。
タグを追加および管理する
タグは、デプロイのために特定の環境 VM のセットをターゲットにする方法です。
tags キーワードでenvironmentを指定すると、パイプラインはタグが適用されている環境 VM にのみデプロイされます。
VM に適用できるタグの数に制限はありません。 タグ名はそれぞれ 256 文字に制限されています。
タグを適用または削除するには、環境の [リソース] タブの VM の横にある [その他のアクション] アイコンを選択します。
VM にエージェント スクリプトを登録するときに、タグを対話形式で適用することもできます。
複数のタグを指定した場合、パイプラインはすべてのタグを含む VM にのみデプロイされます。 次の例では、 windows タグと prod タグの両方を持つ VM のみを対象としています。 パイプラインは、タグが 1 つだけまたはまったくない 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 VMs with both windows and prod tags
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
デプロイ履歴を表示する
コミットと作業項目の完全な追跡可能性と、環境とリソースごとのクロスパイプラインデプロイ履歴については、環境ページ の [デプロイ ] タブを選択します。