Публикация настраиваемых артефактов пакета конфигурации машины
Перед началом работы рекомендуется ознакомиться со страницей обзора конфигурации машины.
Пользовательские .zip
пакеты конфигурации компьютера должны храниться в расположении, доступном через HTTPS управляемыми компьютерами. К примеру, в репозитории GitHub, репозитории Azure, службе хранилища Azure или на веб-сервере в частном центре обработки данных.
Пакеты конфигураций, которые поддерживают Audit
и AuditandSet
, публикуются аналогичным образом. Во время публикации не требуется выполнять какие-либо специальные действия в зависимости от режима пакета.
Публикация пакета конфигураций
Предпочтительным расположением для хранения пакета конфигураций является служба "Хранилище BLOB-объектов Azure". Никаких особых требований к учетной записи хранения нет, но рекомендуется размещать файл в регионе рядом с вашими компьютерами. Если вы предпочитаете, чтобы этот пакет не был общедоступным, можно включить в URL-адрес маркер SAS или реализовать конечную точку службы для компьютеров в частной сети.
Чтобы опубликовать пакет конфигурации в хранилище BLOB-объектов Azure, выполните следующие действия, которые используют модуль Az.Storage .
Если у вас нет учетной записи хранения, используйте следующий пример, чтобы создать ее.
# 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-configuration
BLOB-объектов.
$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).