次の方法で共有


AzureVmssDeployment@1 - Azure VM スケール セット デプロイ v1 タスク

仮想マシン スケール セット イメージをデプロイします。

このバージョンのタスクでは、Azure RBAC を使用して Azure Storage に接続します。 詳細については、「 Azure Storage にアクセスするための Azure RBAC の構成」を参照してください。

構文

# Azure VM scale set deployment v1
# Deploy a virtual machine scale set image.
- task: AzureVmssDeployment@1
  inputs:
  # Azure Details
    azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription. 
    action: 'Update image' # 'Update image' | 'Configure application startup'. Required. Action. Default: Update image.
    vmssName: # string. Required. Virtual Machine scale set name. 
    vmssOsType: # 'Windows' | 'Linux'. Required. OS type. 
  # Image Details
    #imageUrl: # string. Required when action = Update image || action = UpdateImage. Image URL. 
  # Configure start-up
    #customScriptsDirectory: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Custom script directory. 
    #customScript: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Command. 
    #customScriptArguments: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Arguments. 
    #customScriptsStorageAccount: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Azure storage account where custom scripts will be uploaded. 
  # Advanced
    #skipArchivingCustomScripts: false # boolean. Skip Archiving custom scripts. Default: false.

入力

Azure サブスクリプション を する
入力エイリアス: ConnectedServiceNamestring。 必須。

スケール セットの Azure Resource Manager サブスクリプションを選択します。


action - アクションの
string。 必須。 使用できる値: Update image (イメージを使用して VM スケール セットを更新する)、Configure application startup (VM スケール セットでカスタム スクリプト VM 拡張機能を実行する)。 既定値: Update image

VHD イメージを使用して VM スケール セットを更新するか、カスタム スクリプト VM 拡張機能を使用してデプロイ/インストール スクリプトを実行するかを選択します。
VHD イメージ アプローチは、迅速なスケーリングとロールバックの実行に適しています。 拡張アプローチは、デプロイ後の構成、ソフトウェアのインストール、またはその他の構成/管理タスクに役立ちます。
VHD イメージを使用して VM スケール セットを更新できるのは、カスタム イメージを使用して作成された場合のみであり、VM スケール セットが Azure で使用可能なプラットフォーム/ギャラリー イメージを使用して作成された場合、更新は失敗します。
カスタム スクリプト VM 拡張機能アプローチは、カスタム イメージまたはプラットフォーム/ギャラリー イメージを使用して作成された VM スケール セットに使用できます。


仮想マシン スケール セット名vmssName - する
string。 必須。

VHD イメージまたはカスタム スクリプト VM 拡張機能を使用して更新する VM スケール セットの名前。


OS の種類vmssOsType - する
string。 必須。 使用できる値: WindowsLinux

VM スケール セットのオペレーティング システムの種類を選択します。


imageUrl - イメージ URL
stringaction = Update image || action = UpdateImageする場合に必要です。

VHDイメージのURLを指定します。 Azure Storage Blob URL の場合、ストレージ アカウントの場所はスケール セットの場所と同じである必要があります。


カスタム スクリプト ディレクトリcustomScriptsDirectory -
string。 任意。 action = Configure application startup || action = Update image || action = UpdateImageするときに使用します。

Custom Script VM 拡張機能を使用して実行されるカスタム スクリプトを含むディレクトリへのパス。 拡張機能のアプローチは、展開後の構成、アプリケーション/ソフトウェアのインストール、またはその他のアプリケーション構成/管理タスクに役立ちます。 たとえば、スクリプトでは、データベース接続文字列など、アプリケーションが使用するマシンレベルの環境変数を設定できます。


customScript - コマンド
string。 任意。 action = Configure application startup || action = Update image || action = UpdateImageするときに使用します。

カスタム スクリプト VM 拡張機能を使用して実行されるスクリプト。 このスクリプトは、ディレクトリ内の他のスクリプトを呼び出すことができます。 スクリプトは、以下で渡される引数で呼び出されます。
このスクリプトをこのような引数と組み合わせて使用すると、コマンドを実行するために使用できます。 例えば次が挙げられます。
1. Update-DatabaseConnectionStrings.ps1 -clusterType dev -user $(dbUser) -password $(dbUserPwd) は、Web アプリケーションの web.config 接続文字列を更新します。
2. install-secrets.sh --key-vault-type prod -key serviceprincipalkey は、サービス プリンシパル キーを含む暗号化ファイルを作成します。


customScriptArguments - 引数
string。 任意。 action = Configure application startup || action = Update image || action = UpdateImageするときに使用します。

カスタム スクリプトは、引数を渡して呼び出されます。 ビルド/リリース変数を使用できるため、シークレットを簡単に使用できます。


カスタム スクリプトがアップロードされる Azure ストレージ アカウントを customScriptsStorageAccount -
string。 任意。 action = Configure application startup || action = Update image || action = UpdateImageするときに使用します。

Custom Script Extension は、VM スケール セット内の各仮想マシンで提供されたスクリプトをダウンロードして実行します。 これらのスクリプトは、ここで指定したストレージ アカウントに格納されます。 既存の ARM ストレージ アカウントを指定します。


skipArchivingCustomScripts - カスタム スクリプトのアーカイブをスキップする
boolean。 既定値: false

デフォルトでは、このタスクはカスタムスクリプトを含むディレクトリの圧縮アーカイブを作成します。 これにより、Azure Storage へのアップロード時のパフォーマンスと信頼性が向上します。 選択されていない場合、アーカイブは行われず、すべてのファイルが個別にアップロードされます。


タスク コントロールのオプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。

出力変数

なし。

注釈

このタスクを使用して、仮想マシン スケール セット イメージをデプロイします。

スクリプトの実行は成功として報告されますが、VMSS インスタンスは更新されません

スケール セットには、最新のスケール セット モデルを使用して VM を up-to-date に持ち込む方法を決定するアップグレード ポリシーがあり、アップグレード ポリシーが手動に設定されている場合は、各 VM を手動でアップグレードする必要があります。 詳細については、「最新のスケール セット モデルを使用して VM up-to-date を使用する方法」を参照してください。 更新ポリシーを変更することも、各 VM を手動でアップグレードすることもできます。 たとえば、ポリシーを Automaticにアップグレードするには、次の Az CLI コマンドを使用します: az vmss update --set upgradePolicy.mode=Automatic -g <resource group name> -n <vmss name>

エラー: 'アクセス許可が拒否されました: スクリプトが実行可能ではありません'

この問題は、カスタム スクリプトを実行しようとしても、スクリプトが実行可能でない場合に発生します。

この問題を解決するには、まず、スクリプト名が customScriptする前に、./ 入力に 'test.sh' または何も含まれていないことを確認します。

    customScript: 'test.sh'

次に、仮想マシン スケール セット タスクの前にコマンド ライン タスクを追加してみてください。

    - task: CmdLine@2
      inputs:
        script: 'chmod 777 $(System.DefaultWorkingDirectory)/test.sh' 

Azure Storage にアクセスするための Azure RBAC の構成

このバージョンのタスクでは、ワークロード ID フェデレーションと Azure RBAC を使用して構成された Azure Resource Manager サービス接続 を使用して、ストレージ アカウント キーや Shared Access Signature (SAS) ではなく Azure ストレージに接続します。 このタスクから Azure ストレージに接続するには、ストレージ アカウントの Storage Blob Data Contributor ロールを、 azureSubscription 用に構成されたサービス接続の ID に割り当てる必要があります。

詳細については、「 BLOB データにアクセスするための Azure ロールを割り当てる 」および「 ロールを割り当てる手順」を参照してください。

AzureVmssDeployment@1 タスクには、customScriptsStorageAccount で構成されたストレージ アカウントにアクセスするために構成された次の追加の RBAC ロールが必要です。

役割 リソース ユーザー
共同作成者 または 仮想マシン共同作成者 仮想マシン スケール セット に対して構成されたサービス接続の ID azureSubscription
ストレージ BLOB データ共同作成者 カスタム スクリプトを保持する Azure ストレージ アカウント に対して構成されたサービス接続の ID azureSubscription
ストレージ BLOB データ リーダー カスタム スクリプトを保持する Azure ストレージ アカウント 仮想マシン スケール セット システム割り当てマネージド ID

カスタム スクリプト アクセスのための Azure RBAC アクセス。

要求事項

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
の需要 無し
機能 このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 [任意]
設定可能な変数 [任意]
エージェントのバージョン 2.209.0 以上
タスク カテゴリ 展開