Artefacten voor aangepaste machineconfiguratiepakketten publiceren
Voordat u begint, is het een goed idee om de overzichtspagina voor machineconfiguratie te lezen.
Aangepaste .zip
pakketten voor machineconfiguratie moeten worden opgeslagen op een locatie die toegankelijk is via HTTPS door de beheerde machines. Voorbeelden hiervan zijn GitHub-opslagplaatsen, een Azure-opslagplaats, Azure-opslag of een webserver in uw privé-datacenter.
Configuratiepakketten die ondersteuning bieden Audit
en AuditandSet
op dezelfde manier worden gepubliceerd. Het is niet nodig om iets speciaals te doen tijdens het publiceren op basis van de pakketmodus.
Een configuratiepakket publiceren
De voorkeurslocatie voor het opslaan van een configuratiepakket is Azure Blob Storage. Er zijn geen speciale vereisten voor het opslagaccount, maar het is een goed idee om het bestand te hosten in een regio in de buurt van uw machines. Als u het pakket liever niet openbaar wilt maken, kunt u een SAS-token opnemen in de URL of een service-eindpunt implementeren voor computers in een particulier netwerk.
Als u uw configuratiepakket wilt publiceren naar Azure Blob Storage, kunt u deze stappen uitvoeren, die gebruikmaken van de Az.Storage-module .
Als u geen opslagaccount hebt, gebruikt u het volgende voorbeeld om er een te maken.
# 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
Haal vervolgens de context op van het opslagaccount waarin u het pakket wilt opslaan. Als u het opslagaccount in het vorige voorbeeld hebt gemaakt, kunt u de context ophalen uit het opslagcontainerobject dat is opgeslagen in de $container
variabele:
$context = $container.Context
Als u een bestaande opslagcontainer gebruikt, kunt u de verbindingsreeks van de container gebruiken met de New-AzStorageContext
cmdlet:
$connectionString = @(
'DefaultEndPointsProtocol=https'
'AccountName=<storage-account-name>'
'AccountKey=<storage-key-for-the-account>' # ends with '=='
) -join ';'
$context = New-AzStorageContext -ConnectionString $connectionString
Voeg vervolgens het configuratiepakket toe aan het opslagaccount. In dit voorbeeld wordt het zip-bestand ./MyConfig.zip
geüpload naar de blobcontainer machine-configuration
.
$setParams = @{
Container = 'machine-configuration'
File = './MyConfig.zip'
Context = $context
}
$blob = Set-AzStorageBlobContent @setParams
$contentUri = $blob.ICloudBlob.Uri.AbsoluteUri
Notitie
Als u deze voorbeelden uitvoert in Cloudshell, maar het zip-bestand lokaal hebt gemaakt, kunt u het bestand uploaden naar Cloudshell.
Hoewel deze volgende stap optioneel is, moet u een SAS-token (Shared Access Signature) toevoegen aan de URL om beveiligde toegang tot het pakket te garanderen. In het onderstaande voorbeeld wordt een BLOB SAS-token met leestoegang gegenereerd en wordt de volledige blob-URI geretourneerd met het shared access Signature-token. In dit voorbeeld heeft het token een tijdslimiet van drie jaar.
$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
Belangrijk
Nadat u het SAS-token hebt gemaakt, noteert u de geretourneerde URI. U kunt het token niet ophalen nadat u het hebt gemaakt. U kunt alleen nieuwe tokens maken. Zie Beperkte toegang verlenen tot Azure Storage-resources met behulp van SAS-handtekeningen (SAS) voor meer informatie over SAS-tokens.