Delen via


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.

Volgende stap