Jak opublikować artefakty pakietu konfiguracji niestandardowej maszyny
Przed rozpoczęciem warto przeczytać stronę przeglądu konfiguracji maszyny.
Pakiety niestandardowe .zip
konfiguracji maszyny muszą być przechowywane w lokalizacji dostępnej za pośrednictwem protokołu HTTPS przez zarządzane maszyny. Przykłady obejmują repozytoria GitHub, repozytoria platformy Azure, usługę Azure Storage lub serwer internetowy w prywatnym centrum danych.
Pakiety konfiguracji, które obsługują Audit
i AuditandSet
są publikowane w taki sam sposób. Nie ma potrzeby wykonywania żadnych specjalnych czynności podczas publikowania w oparciu o tryb pakietu.
Publikowanie pakietu konfiguracji
Preferowaną lokalizacją do przechowywania pakietu konfiguracji jest usługa Azure Blob Storage. Nie ma specjalnych wymagań dotyczących konta magazynu, ale dobrym pomysłem jest hostowanie pliku w regionie w pobliżu maszyn. Jeśli wolisz nie upublicznić pakietu, możesz dołączyć token SAS do adresu URL lub zaimplementować punkt końcowy usługi dla maszyn w sieci prywatnej.
Aby opublikować pakiet konfiguracji w usłudze Azure Blob Storage, możesz wykonać następujące kroki, korzystając z modułu Az.Storage .
Jeśli nie masz konta magazynu, użyj poniższego przykładu, aby go utworzyć.
# 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
Następnie uzyskaj kontekst konta magazynu, w którym chcesz przechowywać pakiet. Jeśli konto magazynu zostało utworzone we wcześniejszym przykładzie, możesz pobrać kontekst z obiektu kontenera magazynu zapisanego w zmiennej $container
:
$context = $container.Context
Jeśli używasz istniejącego kontenera magazynu, możesz użyć parametry połączenia kontenera za New-AzStorageContext
pomocą polecenia cmdlet :
$connectionString = @(
'DefaultEndPointsProtocol=https'
'AccountName=<storage-account-name>'
'AccountKey=<storage-key-for-the-account>' # ends with '=='
) -join ';'
$context = New-AzStorageContext -ConnectionString $connectionString
Następnie dodaj pakiet konfiguracji do konta magazynu. W tym przykładzie plik ./MyConfig.zip
zip jest przekazywany do kontenera machine-configuration
obiektów blob.
$setParams = @{
Container = 'machine-configuration'
File = './MyConfig.zip'
Context = $context
}
$blob = Set-AzStorageBlobContent @setParams
$contentUri = $blob.ICloudBlob.Uri.AbsoluteUri
Uwaga
Jeśli używasz tych przykładów w programie CloudShell, ale utworzono plik zip lokalnie, możesz przekazać plik do programu CloudShell.
Chociaż ten następny krok jest opcjonalny, należy dodać token sygnatury dostępu współdzielonego (SAS) w adresie URL, aby zapewnić bezpieczny dostęp do pakietu. Poniższy przykład generuje token SAS obiektu blob z dostępem do odczytu i zwraca pełny identyfikator URI obiektu blob z tokenem sygnatury dostępu współdzielonego. W tym przykładzie token ma limit czasu 3 lat.
$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
Ważne
Po utworzeniu tokenu SAS zanotuj zwrócony identyfikator URI. Nie można pobrać tokenu po jego utworzeniu. Można tworzyć tylko nowe tokeny. Aby uzyskać więcej informacji na temat tokenów SAS, zobacz Udzielanie ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatur dostępu współdzielonego (SAS).