Para implantar a extensão para Linux:
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationForLinux' -Name 'AzurePolicyforLinux' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
Para implantar a extensão para Windows:
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationforWindows' -Name 'AzurePolicyforWindows' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
Modelos de implantação
Os modelos de implantação também estão disponíveis para o Azure Resource Manager (ARM), Bicep e Terraform. Para obter detalhes do modelo de implantação, consulte Microsoft.GuestConfiguration guestConfigurationAssignments.
Observação
Nos exemplos de implantação a seguir, substitua os valores de parâmetro <placeholder> por valores específicos para sua configuração.
Considerações de implantação
Antes de instalar e implantar a extensão de Configuração de Máquina, examine as considerações a seguir.
Nome da instância. Quando você instala a extensão de Configuração de Máquina, o nome da instância da extensão deve ser definido como AzurePolicyforWindows ou AzurePolicyforLinux. As políticas de definição de linha de base de segurança descritas anteriormente exigem essas cadeias de caracteres específicas.
Versões. Por padrão, todas as implantações são atualizadas para a versão mais recente. O valor da propriedade autoUpgradeMinorVersion assume true como padrão, a menos que seja especificado de outra forma. Esse recurso ajuda a aliviar as preocupações com a atualização do código quando novas versões da extensão de Configuração de Máquina são lançadas.
Atualização automática. A extensão de Configuração de Máquina dá suporte à propriedade enableAutomaticUpgrade. Quando essa propriedade é definida como true, o Azure atualiza automaticamente para a versão mais recente da extensão à medida que versões futuras se tornarem disponíveis. Para obter mais informações, confira a Atualização automática de extensão para VMs e Conjuntos de Dimensionamento de Máquinas Virtuais no Azure.
Azure Policy. Para implantar a versão mais recente da extensão de Configuração de Máquina em escala, incluindo requisitos de identidade, siga as etapas em Criar uma atribuição de política para identificar recursos não compatíveis. Crie a seguinte atribuição com o Azure Policy:
Outras propriedades. Não é preciso incluir configurações ou propriedades de configurações protegidas na extensão de Configuração de Máquina. O agente recupera essa classe de informações dos recursos de atribuição de Configuração de Convidado da API REST do Azure. Por exemplo, as propriedades ConfigurationUri, Modee ConfigurationSetting são gerenciadas por configuração, não na extensão de VM.
modelo do ARM
Para implantar a extensão para Linux:
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(parameters('VMName'), '/AzurePolicyforLinux')]",
"apiVersion": "2020-12-01",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]"
],
"properties": {
"publisher": "Microsoft.GuestConfiguration",
"type": "ConfigurationForLinux",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {}
}
}
Para implantar a extensão para Windows:
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(parameters('VMName'), '/AzurePolicyforWindows')]",
"apiVersion": "2020-12-01",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]"
],
"properties": {
"publisher": "Microsoft.GuestConfiguration",
"type": "ConfigurationforWindows",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {}
}
}
Modelo do Bicep
Para implantar a extensão para Linux:
resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-03-01' existing = {
name: 'VMName'
}
resource windowsVMGuestConfigExtension 'Microsoft.Compute/virtualMachines/extensions@2020-12-01' = {
parent: virtualMachine
name: 'AzurePolicyforLinux'
location: resourceGroup().location
properties: {
publisher: 'Microsoft.GuestConfiguration'
type: 'ConfigurationForLinux'
typeHandlerVersion: '1.0'
autoUpgradeMinorVersion: true
enableAutomaticUpgrade: true
settings: {}
protectedSettings: {}
}
}
Para implantar a extensão para Windows:
resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-03-01' existing = {
name: 'VMName'
}
resource windowsVMGuestConfigExtension 'Microsoft.Compute/virtualMachines/extensions@2020-12-01' = {
parent: virtualMachine
name: 'AzurePolicyforWindows'
location: resourceGroup().location
properties: {
publisher: 'Microsoft.GuestConfiguration'
type: 'ConfigurationforWindows'
typeHandlerVersion: '1.0'
autoUpgradeMinorVersion: true
enableAutomaticUpgrade: true
settings: {}
protectedSettings: {}
}
}
Para implantar a extensão para Linux:
resource "azurerm_virtual_machine_extension" "gc" {
name = "AzurePolicyforLinux"
virtual_machine_id = "<myVMID>"
publisher = "Microsoft.GuestConfiguration"
type = "ConfigurationForLinux"
type_handler_version = "1.0"
auto_upgrade_minor_version = "true"
}
Para implantar a extensão para Windows:
resource "azurerm_virtual_machine_extension" "gc" {
name = "AzurePolicyforWindows"
virtual_machine_id = "<myVMID>"
publisher = "Microsoft.GuestConfiguration"
type = "ConfigurationforWindows"
type_handler_version = "1.0"
auto_upgrade_minor_version = "true"
}
Mensagens de erro
A tabela a seguir lista possíveis mensagens de erro relacionadas à habilitação da extensão de Configuração de Convidado.
| Código do erro |
Descrição |
|
NoComplianceReport |
A VM não informou os dados de conformidade. |
|
GCExtensionMissing |
A extensão de Configuração de Máquina (configuração de convidado) está ausente. |
|
ManagedIdentityMissing |
A identidade gerenciada está ausente. |
|
UserIdentityMissing |
A identidade atribuída pelo usuário está ausente. |
|
GCExtensionManagedIdentityMissing |
A extensão de Configuração de Máquina (configuração de convidado) e a identidade gerenciada estão ausentes. |
|
GCExtensionUserIdentityMissing |
A extensão de Configuração de Máquina (configuração de convidado) e a identidade atribuída pelo usuário estão ausentes. |
|
GCExtensionIdentityMissing |
A extensão de Configuração de Máquina (configuração de convidado), a identidade gerenciada e a identidade atribuída pelo usuário estão ausentes. |
Próximas etapas