Partilhar via


Como publicar artefatos de pacote de configuração de máquina personalizados

Antes de começar, é uma boa ideia ler a página de visão geral da configuração da máquina.

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

Pacotes de configuração que suportam Audit e AuditandSet são publicados da mesma maneira. Não há necessidade de fazer nada de 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 próxima às suas máquinas. Se preferir não tornar o pacote público, você pode incluir um token SAS na URL ou implementar um ponto de extremidade de serviço para máquinas em uma rede privada.

Para publicar seu pacote de configuração no armazenamento de blobs do Azure, você pode seguir estas 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

Em seguida, 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 $container variável:

$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 New-AzStorageContext cmdlet:

$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 ./MyConfig.zip zip para o contêiner machine-configurationde blob.

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

Nota

Se você estiver executando esses exemplos no Cloudshell, mas criou seu arquivo zip localmente, poderá fazer upload do arquivo para o Cloudshell.

Embora esta 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, consulte Conceder acesso limitado aos recursos do Armazenamento do Azure usando assinaturas de acesso compartilhado (SAS).

Próximo passo