Publicera artefakter för anpassade datorkonfigurationspaket
Innan du börjar är det en bra idé att läsa översiktssidan för datorkonfiguration.
Anpassade .zip
paket för datorkonfiguration måste lagras på en plats som är tillgänglig via HTTPS av de hanterade datorerna. Exempel är GitHub-lagringsplatser, en Azure-lagringsplats, Azure Storage eller en webbserver i ditt privata datacenter.
Konfigurationspaket som stöder Audit
och AuditandSet
publiceras på samma sätt. Du behöver inte göra något speciellt under publiceringen baserat på paketläget.
Publicera ett konfigurationspaket
Den bästa platsen för att lagra ett konfigurationspaket är Azure Blob Storage. Det finns inga särskilda krav för lagringskontot, men det är en bra idé att vara värd för filen i en region nära dina datorer. Om du föredrar att inte göra paketet offentligt kan du inkludera en SAS-token i URL:en eller implementera en tjänstslutpunkt för datorer i ett privat nätverk.
Om du vill publicera konfigurationspaketet till Azure Blob Storage kan du följa de här stegen, som använder Az.Storage-modulen .
Om du inte har något lagringskonto använder du följande exempel för att skapa ett.
# 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
Hämta sedan kontexten för det lagringskonto som du vill lagra paketet i. Om du skapade lagringskontot i det tidigare exemplet kan du hämta kontexten från lagringscontainerobjektet som sparats i variabeln $container
:
$context = $container.Context
Om du använder en befintlig lagringscontainer kan du använda containerns anslutningssträng med cmdletenNew-AzStorageContext
:
$connectionString = @(
'DefaultEndPointsProtocol=https'
'AccountName=<storage-account-name>'
'AccountKey=<storage-key-for-the-account>' # ends with '=='
) -join ';'
$context = New-AzStorageContext -ConnectionString $connectionString
Lägg sedan till konfigurationspaketet till lagringskontot. I det här exemplet laddas zip-filen ./MyConfig.zip
upp till blobcontainern machine-configuration
.
$setParams = @{
Container = 'machine-configuration'
File = './MyConfig.zip'
Context = $context
}
$blob = Set-AzStorageBlobContent @setParams
$contentUri = $blob.ICloudBlob.Uri.AbsoluteUri
Kommentar
Om du kör de här exemplen i Cloudshell men har skapat zip-filen lokalt kan du ladda upp filen till Cloudshell.
Även om nästa steg är valfritt bör du lägga till en SAS-token (signatur för delad åtkomst) i URL:en för att säkerställa säker åtkomst till paketet. Exemplet nedan genererar en BLOB SAS-token med läsåtkomst och returnerar den fullständiga blob-URI:n med signaturtoken för delad åtkomst. I det här exemplet har token en tidsgräns på tre år.
$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
Viktigt!
När du har skapat SAS-token noterar du den returnerade URI:n. Du kan inte hämta token när du har skapat den. Du kan bara skapa nya token. Mer information om SAS-token finns i Bevilja begränsad åtkomst till Azure Storage-resurser med hjälp av signaturer för delad åtkomst (SAS).