2016-04-08 4 views
0

カスタムVMイメージから.net用のAzureリソース管理ライブラリを使用してテンプレートデプロイメントを作成しようとしています。リソースグループを作成し、前述のライブラリを使用して(テンプレートファイルを使用して)必要なリソースを配備することで、目標を達成できます。リソースグループを削除するとき、リソースグループ内のVM作成時に作成されたVhdも削除する必要があるという要件があります。しかし、リソースグループを削除すると、vhdファイルは別のリソースグループ(したがってvmイメージが存在する別のストレージアカウント)で作成され、作成時にカスタムのvmイメージが存在する必要があるという事実があるため、削除されませんあなたの仮想マシンのvhdをホストするのと全く同じストレージアカウント。カスタムイメージを含むストレージアカウントを削除できません。それで、カスタムアカウント(vhd)をストレージアカウントから新しく作成したリソースグループのストレージアカウントにコピーする方法はありますか? またはカスタムvmイメージを削除せずに、作成したvmのvhdを削除するための他の回避策がありますか?カスタムVMイメージをあるリソースグループから別のリソースグループにコピーする(同じサブスクリプションで)

答えて

0

テンプレート配布中にBLOBをコピーする方法はありません。現在、ストレージリソース提供は、テンプレート配布中のデータプレーン操作をサポートしていません。あなたは、例えば、複数の展開にそれを破ることができます:

  1. 展開ストレージアカウントを新しいVMのための新しいリソース・グループへ
  2. 実行コードの新しいリソース・グループに新しいストレージアカウントへのVHDのカスタムイメージをコピーする

しかし、これをコードで実行する場合、VMを保持するリソースグループを削除する前に、OSのVHDのURIを取得するのが最も簡単な方法です。その後、そのRGを削除した後、そのBLOBを削除します。このPowerShellコードは、VMのvhd BLOBのURIを提供します(.net SDKも同様です)。

RGに複数のVMがある場合は、配列を取得して反復処理を行うことができます。

+0

はい、意味があります。私が考えていた別のアプローチは、別のコンテナ(VMのベースイメージを保持するストレージアカウント内)を作成し、作成されたVMのvhd(ベースイメージから)をコンテナに保存し、必要に応じてコンテナを削除することでした。 –

+0

これは実際に私が私のためにやっていることですが、ストレージアカウントとVMが同じ場所にあるということがあります。これは基本イメージの複数のコピーを保持することを意味します。 –

+0

@ bmoore-msftあなたは私に次の質問に関するガイダンスをくれますか? http://stackoverflow.com/questions/42933466/how-to-clone-and-manage-a-virtual-machine-in-azure-using-c-sharp-and-azure-net – k2ibegin

0

vhdファイルをストレージアカウントからローカルファイルシステムにダウンロードし、必要なコンテナまたはストレージアカウントを削除することもできます。その後、新しく使用して作成したAzureストレージアカウントにローカルシステム上のあなたは、この作成したVMのVHDを削除したい理由を、私は理解していないが、

Add-azureRmVhd -Destination 'newstorageaccounturi' -LocalFilePath 'C:\users....\' -NumberOfUploaderThreads 5 

を、このVHDファイルをプッシュしますか?あなたはそれに別のディスクを添付しますか?

+0

実際に私のシナリオでは、VMは特定の時間が経過した後に削除され、そのvhdが長期的に削除されないとストレージコストが増加します作成および削除するVMSが多すぎるためです。 –

1

使用 のMicrosoft Azureストレージエクスプローラー

コピー/

ストレージアカウントA \ブロブコンテナ\アップロード

から

ストレージアカウントB \ブロブコンテナにVHDを貼り付け\アップロード

関連する問題