Guide pratique pour publier des artefacts de package de configuration de machine personnalisés
Avant de commencer, nous vous conseillons de lire la page de présentation de la configuration machine.
Les packages personnalisés .zip
de configuration d’ordinateur doivent être stockés dans un emplacement accessible via HTTPS par les machines managées. Par exemple, des référentiels GitHub, un référentiel azure, un stockage azure ou un serveur web dans votre centre de donnés privé.
Les packages de configuration prenant en charge Audit
et AuditandSet
sont publiés de la même façon. Il n’est pas nécessaire d’effectuer une procédure spéciale pendant la publication en fonction du mode de package.
Publier un package de configuration
L’emplacement privilégié pour stocker un package de configuration est Stockage Blob Azure. Il n’existe aucune exigence particulière pour le compte de stockage, mais il est judicieux d’héberger le fichier dans une région proche de vos machines. Si vous préférez rendre le package public, vous pouvez inclure un jeton SAS dans l’URL ou implémenter un point de terminaison de service pour les machines dans un réseau privé.
Pour publier votre package de configuration dans le stockage d’objets blob Azure, vous pouvez suivre ces étapes qui tirent parti du module Az.Storage.
Si vous n’avez pas de compte de stockage, utilisez l’exemple suivant pour en créer un.
# 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
Obtenez ensuite le contexte du compte de stockage dans lequel vous souhaitez stocker le package. Si vous avez créé le compte de stockage dans l’exemple précédent, vous pouvez obtenir le contexte à partir de l’objet conteneur de stockage enregistré dans la variable $container
:
$context = $container.Context
Si vous utilisez un conteneur de stockage existant, vous pouvez utiliser la chaîne de connexion du conteneur avec l’applet de commande New-AzStorageContext
:
$connectionString = @(
'DefaultEndPointsProtocol=https'
'AccountName=<storage-account-name>'
'AccountKey=<storage-key-for-the-account>' # ends with '=='
) -join ';'
$context = New-AzStorageContext -ConnectionString $connectionString
Ensuite, ajoutez le package de configuration au compte de stockage. Cet exemple charge le fichier zip ./MyConfig.zip
vers le conteneur blob machine-configuration
.
$setParams = @{
Container = 'machine-configuration'
File = './MyConfig.zip'
Context = $context
}
$blob = Set-AzStorageBlobContent @setParams
$contentUri = $blob.ICloudBlob.Uri.AbsoluteUri
Notes
Si vous exécutez ces exemples dans Cloudshell, mais que vous avez créé votre fichier zip localement, vous pouvez charger le fichier dans Cloudshell.
Bien que cette étape suivante soit facultative, vous devez ajouter un jeton de signature d’accès partagé (SAP) dans l’URL pour garantir un accès sécurisé au package. L’exemple ci-dessous génère un jeton SAS d’objet blob avec une autorisation de lecture et retourne l’URI d’objet blob complet avec le jeton de signature d’accès partagé. Dans cet exemple, le jeton a une durée de trois ans.
$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
Important
Après avoir créé le jeton SAP, notez l’URI retourné. Vous ne pouvez pas récupérer le jeton après l’avoir créé. Vous pouvez uniquement créer des jetons. Pour plus d’informations sur les jetons SAP, consultez Accorder un accès limité aux ressources du Stockage Azure à l’aide des signatures d’accès partagé (SAP).