カスタム マシン構成パッケージの成果物の公開方法
開始する前に、マシン構成の概要ページを参照することをお勧めします。
マシン構成のカスタム .zip
パッケージは、マネージド マシンから HTTPS 経由でアクセスできる場所に格納する必要があります。 たとえば、GitHub リポジトリ、Azure リポジトリ、Azure Storage、またはプライベート データセンター内の Web サーバーなどです。
Audit
と AuditandSet
をサポートする構成パッケージは、同じ方法で公開されます。 パッケージ モードに基づいた公開時には、特別なことを行う必要はありません。
構成パッケージの公開
構成パッケージの保存先として推奨される場所は Azure Blob Storage です。 ストレージ アカウントに特別な要件はありませんが、自分のコンピューターの近くのリージョンでファイルをホストすることをお勧めします。 パッケージを公開したくない場合は、URL に SAS トークンを含めるか、マシンのサービス エンドポイントをプライベート ネットワークに実装することができます。
構成パッケージを Azure BLOB ストレージに発行するために、以下の手順に従って、Az.Storage モジュールを使用することができます。
ストレージ アカウントがない場合は、次の例を使用して作成してください。
# Creates a new resource group, storage account, and container
$ResourceGroup = '<resource-group-name>'
$Location = '<location-id>'
New-AzResourceGroup -Name $ResourceGroup -Location $Location
$newAccountParams = @{
ResourceGroupname = $ResourceGroup
Location = $Location
Name = '<storage-account-name>'
SkuName = 'Standard_LRS'
}
$container = New-AzStorageAccount @newAccountParams |
New-AzStorageContainer -Name machine-configuration -Permission Blob
次に、パッケージを格納するストレージ アカウントのコンテキストを取得します。 前の例でストレージ アカウントを作成した場合は、$container
変数に保存されているストレージ コンテナー オブジェクトからコンテキストを取得できます。
$context = $container.Context
既存のストレージ コンテナーを使用している場合は、New-AzStorageContext
コマンドレットでコンテナーの接続文字列を使用できます。
$connectionString = @(
'DefaultEndPointsProtocol=https'
'AccountName=<storage-account-name>'
'AccountKey=<storage-key-for-the-account>' # ends with '=='
) -join ';'
$context = New-AzStorageContext -ConnectionString $connectionString
次に、構成パッケージをストレージ アカウントに追加します。 この例では、zip ファイル ./MyConfig.zip
を BLOB コンテナー machine-configuration
にアップロードします。
$setParams = @{
Container = 'machine-configuration'
File = './MyConfig.zip'
Context = $context
}
$blob = Set-AzStorageBlobContent @setParams
$contentUri = $blob.ICloudBlob.Uri.AbsoluteUri
Note
Cloudshell でこれらの例を実行していても、zip ファイルをローカルに作成した場合は、Cloudshell にファイルをアップロードできます。
この次の手順は省略可能ですが、パッケージへの安全なアクセスを確保するために、URL に共有アクセス署名 (SAS) トークンを追加する必要があります。 次の例では、読み取りアクセス権を持つ BLOB SAS トークンを生成し、共有アクセス署名トークンを含む完全な BLOB URI を返します。 この例では、トークンの制限時間は 3 年です。
$startTime = Get-Date
$endTime = $startTime.AddYears(3)
$tokenParams = @{
StartTime = $startTime
ExpiryTime = $endTime
Container = 'machine-configuration'
Blob = 'MyConfig.zip'
Permission = 'r'
Context = $context
FullUri = $true
}
$contentUri = New-AzStorageBlobSASToken @tokenParams
重要
SAS トークンを作成したら、返された URI をメモします。 トークンを作成した後で取得することはできません。 新しいトークンのみを作成できます。 SAS トークンの詳細については、「Shared Access Signatures (SAS) を使用して Azure Storage リソースへの制限付きアクセスを許可する」を参照してください。