Como publicar artefatos personalizados para o pacote de configuração de computador

Antes de começar, é uma boa ideia fazer a leitura da página de visão geral da configuração de computador.

Os pacotes .zip personalizados de configuração de máquina devem ser armazenados em um local acessível via HTTPS pelas máquinas gerenciadas. Os exemplos incluem repositórios GitHub, um repositório do azure, um armazenamento do azure ou um servidor Web em seu datacenter privado.

Pacotes de configuração compatíveis com Audit e AuditandSet são publicados da mesma maneira. Não há necessidade de fazer nada especial durante a publicação com base no modo de pacote.

Publicar um pacote de configuração

O local preferencial para armazenar um pacote de configuração é o Armazenamento de Blobs do Azure. Não há requisitos especiais para a conta de armazenamento, mas é uma boa ideia hospedar o arquivo em uma região perto de seus computadores. Se você preferir não tornar o pacote público, poderá incluir um token SAS na URL ou implementar um ponto de extremidade de serviço para computadores em uma rede particular.

Para publicar seu pacote de configuração no armazenamento de blobs do Azure, você pode seguir essas etapas, que usam o módulo Az.Storage.

Se você não tiver uma conta de armazenamento, use o exemplo a seguir para criar uma.

# 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

Primeiro, obtenha o contexto da conta de armazenamento na qual você deseja armazenar o pacote. Se você criou a conta de armazenamento no exemplo anterior, poderá obter o contexto do objeto de contêiner de armazenamento salvo na variável $container:

$context = $container.Context

Se você estiver usando um contêiner de armazenamento existente, poderá usar a cadeia de conexão do contêiner com o cmdlet New-AzStorageContext:

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

Em seguida, adicione o pacote de configuração à conta de armazenamento. Este exemplo carrega o arquivo zip ./MyConfig.zip para o contêiner de blob machine-configuration.

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

Observação

Se você estiver executando esses exemplos no Cloudshell, mas tiver criado o arquivo zip localmente, poderá carregar o arquivo no Cloudshell.

Embora essa próxima etapa seja opcional, você deve adicionar um token de assinatura de acesso compartilhado (SAS) na URL para garantir o acesso seguro ao pacote. O exemplo abaixo gera um token SAS de blob com acesso de leitura e retorna o URI de blob completo com o token de assinatura de acesso compartilhado. Neste exemplo, o token tem um limite de tempo de três anos.

$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

Importante

Depois de criar o token SAS, observe o URI retornado. Não é possível recuperar o token depois de criá-lo. Você só pode criar novos tokens. Para obter mais informações sobre tokens SAS, confira Conceder acesso limitado a recursos de Armazenamento do Azure usando SAS (assinaturas de acesso compartilhado).

Próxima etapa