Публикация настраиваемых артефактов пакета конфигурации машины

Перед началом работы рекомендуется ознакомиться со страницей обзора конфигурации машины.

Пользовательские .zip пакеты конфигурации компьютера должны храниться в расположении, доступном через HTTPS управляемыми компьютерами. К примеру, в репозитории GitHub, репозитории Azure, службе хранилища Azure или на веб-сервере в частном центре обработки данных.

Пакеты конфигураций, которые поддерживают Audit и AuditandSet, публикуются аналогичным образом. Во время публикации не требуется выполнять какие-либо специальные действия в зависимости от режима пакета.

Публикация пакета конфигураций

Предпочтительным расположением для хранения пакета конфигураций является служба "Хранилище BLOB-объектов Azure". Никаких особых требований к учетной записи хранения нет, но рекомендуется размещать файл в регионе рядом с вашими компьютерами. Если вы предпочитаете, чтобы этот пакет не был общедоступным, можно включить в URL-адрес маркер SAS или реализовать конечную точку службы для компьютеров в частной сети.

Чтобы опубликовать пакет конфигурации в хранилище BLOB-объектов Azure, выполните следующие действия, которые используют модуль Az.служба хранилища.

Если у вас нет учетной записи хранения, используйте следующий пример, чтобы создать ее.

# 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

Затем получите контекст учетной записи хранения, в которой вы хотите сохранить пакет. Если вы создали учетную запись хранения в предыдущем примере, вы можете получить контекст из объекта контейнера хранилища, сохраненного в переменной $container :

$context = $container.Context

Если вы используете существующий контейнер хранилища, вы можете использовать строка подключения контейнера с командлетомNew-AzStorageContext:

$connectionString = @(
    'DefaultEndPointsProtocol=https'
    'AccountName=<storage-account-name>'
    'AccountKey=<storage-key-for-the-account>' # ends with '=='
) -join ';'
$context = New-AzStorageContext -ConnectionString $connectionString

Затем добавьте пакет конфигурации в учетную запись хранения. В этом примере zip-файл ./MyConfig.zip передается в контейнер machine-configurationBLOB-объектов.

$setParams = @{
    Container = 'machine-configuration'
    File      = './MyConfig.zip'
    Context   = $context
}
$blob = Set-AzStorageBlobContent @setParams
$contentUri = $blob.ICloudBlob.Uri.AbsoluteUri

Примечание.

Если вы выполняете эти примеры в Cloudshell, но создали ZIP-файл локально, вы можете отправить файл в CloudShell.

Хотя этот следующий шаг является необязательным, необходимо добавить маркер подписанного URL-адреса с подписанным URL-адресом, чтобы обеспечить безопасный доступ к пакету. В приведенном ниже примере создается токен SAS большого двоичного объекта с доступом на чтение и возвращается полный универсальный код ресурса (URI) большого двоичного объекта с токеном подписанного URL-адреса. В этом примере маркер имеет ограничение на срок 3 года.

$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

Важно!

После создания маркера SAS обратите внимание на возвращаемый URI. Вы не можете получить маркер после его создания. Вы можете создавать только новые маркеры. Дополнительные сведения о маркерах SAS см. в статье Предоставление ограниченного доступа к ресурсам служба хранилища Azure с помощью подписанных URL-адресов (SAS).

Следующий шаг