如何發佈自訂機器設定套件成品
開始之前,建議您先閱讀機器設定的概觀頁面。
機器設定自訂 .zip
套件必須儲存在受控機器可透過 HTTPS 存取的位置。 範例包括 GitHub 存放庫、Azure 存放庫、Azure 儲存體或私人資料中心內的 Web 伺服器。
支援 Audit
和 AuditandSet
的設定套件會以相同方式發佈。 根據套件模式發佈期間,不需要執行任何特殊動作。
發佈設定套件
儲存設定套件的慣用位置是 Azure Blob 儲存體。 儲存體帳戶沒有特殊需求,但最好將檔案託管在機器附近的區域中。 如果您想要將套件設為不公用,您可以在 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
Cmdlet:
$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
注意
如果您在 Cloudshell 中執行這些範例,但在本機建立 zip 檔案,則可以將檔案上傳至 Cloudshell。
雖然下一個步驟是選擇性的,但您應該在 URL 中新增共用存取簽章 (SAS) 權杖,以確保安全存取套件。 下列範例會產生具有讀取權限的 Blob SAS 權杖,並傳回具有共用存取簽章權杖的完整 Blob URI。 在此範例中,權杖的時間限制為三年。
$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 權杖的詳細資訊,請參閱使用共用存取簽章 (SAS) 對 Azure 儲存體資源授與有限存取權。