Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O comando Executar em servidores habilitados para Azure Arc (versão prévia) permite executar remotamente e com segurança scripts ou comandos em VMs (máquinas virtuais) conectadas ao Azure Arc, sem a necessidade de uma conexão direta por meio do Protocolo de Área de Trabalho Remota ou SSH.
Como você não precisa entrar em cada VM individualmente, o comando Executar reduz a sobrecarga e o esforço para executar tarefas administrativas, como instalar ou atualizar software, configurar regras de firewall, executar verificações de integridade ou solucionar problemas.
Um caso de uso chave é usar o comando Run para aprimorar sua postura de segurança. Você pode usar o comando Executar para aplicar remotamente patches de segurança, impor políticas de conformidade ou corrigir vulnerabilidades em seus servidores habilitados para Azure Arc. Você também pode automatizar tarefas comuns de segurança, como girar senhas, criptografar dados ou auditar logs. Por meio do Azure Arc, você pode executar essas tarefas de forma consistente em seus ambientes híbridos, multinuvem e de borda, ajudando a reduzir a sobrecarga operacional e o tempo de resposta.
Observação
Embora haja algumas diferenças, o comando Executar em servidores habilitados para Azure Arc é semelhante à funcionalidade executar comandos que você pode usar em VMs do Azure, incluindo as restrições descritas. Como exemplo das diferenças, o comando Executar em servidores habilitados para Azure Arc não está disponível no portal do Azure no momento.
Como funciona
O comando Executar é integrado ao agente do Connected Machine (começando com a versão 1.33) e dá suporte à capacidade de executar scripts e centralizar o gerenciamento de scripts nas operações de criação, atualização, exclusão, sequenciamento e listagem.
Quando você usa o comando Executar para executar um script ou comando da CLI do Azure, do PowerShell ou da API REST, o Azure direciona o agente do Computador Conectado instalado na VM para concluir a ação especificada. Você não precisa instalar outras extensões na VM.
Embora o comando Executar em servidores habilitados para Azure Arc seja gratuito para uso, os scripts armazenados no Azure incorrem em encargos de cobrança.
Importante
Atualmente, executar comandos em servidores habilitados para Azure Arc não dá suporte à autenticação de blobs usando identidades gerenciadas.
Configurações com suporte
O comando Executar está disponível em várias configurações:
- Experiências: CLI do Azure, PowerShell e API REST
- Sistemas operacionais: Windows e Linux
- Ambientes: Ambientes não Azure conectados ao Azure Arc, incluindo local, VMware, SCVMM, AWS, GCP e OCI
Observação
No Linux, o comando Executar não aceita nomes com mais de 36 caracteres.
Usar o comando Executar
Para usar o comando Executar, crie um script que contenha os comandos que você deseja executar na VM. Em seguida, execute o script usando o Azure PowerShell, a CLI do Azure ou a API REST. Esta seção inclui exemplos de como usar o comando Executar com cada experiência.
Os exemplos a seguir usam o módulo Az.ConnectedMachine para o Azure PowerShell para executar scripts ou comandos em um servidor habilitado para Arc.
Executar um script em um computador
Esse comando envia o script para o computador, executa-o e retorna a saída capturada.
New-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -Location "eastus" -RunCommandName "RunCommandName" –SourceScript "echo Hello World!"
Observação
Você pode adicionar vários comandos no -SourceScript parâmetro. Use ; para separar cada comando. Por exemplo: –SourceScript "id; echo Hello World!"
Executar um script no computador usando um arquivo de script no armazenamento
Esse comando direciona o agente do Computador Conectado para um URI de SAS (assinatura de acesso compartilhado) para um blob de armazenamento em que um script foi carregado. Em seguida, ele direciona o agente para executar o script e retornar a saída capturada.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri “< SAS URI of a storage blob with read access or public URI>”
Observação
scriptUri é um URI de SAS (assinatura de acesso compartilhado) para o blob de armazenamento, que deve fornecer acesso de leitura ao blob. É sugerido um período de expiração de 24 horas para o SAS URI. Você pode gerar um URI sas no portal do Azure usando opções de blobs ou gerar um token SAS usando New-AzStorageBlobSASToken. Se você gerar um token SAS usando New-AzStorageBlobSASToken, o formato de URI sas será: base blob URL + "?" + o token SAS de New-AzStorageBlobSASToken.
Listar todos os recursos do comando de execução implantados em uma máquina
Este comando retorna uma lista completa de comandos de execução implantados anteriormente com as respectivas propriedades.
Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine"
Obter resultados e status da execução
Esse comando recupera o progresso da execução atual para um comando Executar, incluindo saída mais recente, hora de início e término, código de saída e estado de terminal da execução.
Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -RunCommandName "RunCommandName"
Obter informações de status para um comando de execução por meio do Modo de Exibição de Instância
Esse comando obtém informações de status para um comando de execução na máquina com Exibição de Instância. A Exibição de Instância contém o estado de execução do comando Executar (bem-sucedido, com falha e assim por diante), código de saída, saída padrão e erro padrão gerados pela execução do script. Um código de saída diferente de zero indica uma execução malsucedida.
Get-AzConnectedMachineRunCommand -ResourceGroupName "MyRG" -MachineName "MyMachine" -RunCommandName "MyRunCommand"
Junto com outras informações, a resposta retorna estes campos:
-
InstanceViewExecutionState: indica se o script foi bem-sucedido ou não. -
ProvisioningState: indica se a plataforma de extensão foi capaz de disparar o script de comando Executar ou não.
Criar ou atualizar o Comando Executar em um computador
Esse comando cria ou atualiza um comando de execução em um computador e transmite a saída padrão e as mensagens de erro padrão para os AppendBlobs de saída e erro.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand3" -Location "eastus" -SourceScript "id; echo HelloWorld" -OutputBlobUri <OutPutBlobUrI> -ErrorBlobUri <ErrorBlobUri>
Observação
Os blobs de saída e de erro devem ser do tipo AppendBlob e suas URIs SAS devem fornecer acesso de leitura, acréscimo, criação e gravação ao blob. Um tempo de expiração de 24 horas é recomendado para a URI SAS. Se o blob de saída ou erro não existir, um blob do tipo AppendBlob será criado. Você pode gerar uma URIs SAS no portal do Azure usando as opções do blob ou gerar um token SAS usando New-AzStorageBlobSASToken.
Crie ou atualize o comando Executar em uma máquina como um usuário diferente
Esse comando cria ou atualiza um comando Executar em uma máquina como um usuário diferente, usando os parâmetros RunAsUser e RunAsPassword.
Antes de usar este comando:
- Contate o administrador do computador e verifique se o usuário tem acesso ao computador.
- Verifique se o usuário tem acesso aos recursos acessados pelo comando Executar, como diretórios, arquivos e recursos de rede.
- Em um computador Windows, verifique se o "Logon Secundário" está em execução.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScript "id; echo HelloWorld" -RunAsUser myusername -RunAsPassword mypassword
Criar ou atualizar o comando Executar em uma máquina com um arquivo de script local
Esse comando cria ou atualiza um comando Executar em um computador usando um arquivo de script local no computador cliente em que cmdlet é executado.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"
Criar ou atualizar o comando Executar em um computador ao passar entradas confidenciais para o script
Esse comando cria ou atualiza o comando 'Run' especificado com ProtectedParameter para passar entradas confidenciais, como senhas ou chaves, para um script.
$privateParametersArray = @{name='inputText';value='privateParam1value'}
New-AzConnectedMachineRunCommand -MachineName "MyMachine" -ResourceGroupName "MyRG0" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri <SourceScriptUri> -ProtectedParameter $privateParametersArray
Script de exemplo para capturar texto de entrada:
param ([string]$inputText)
Write-Output $inputText
Você também pode passar parâmetros públicos de maneira semelhante usando Parameter.
Para Windows: Parameter e ProtectedParameter são passados para um script semelhante ao seguinte exemplo:
myscript.ps1 -publicParam1 publicParam1value -publicParam2 publicParam2value -secret1 secret1value -secret2 secret2valuePara Linux: um nome
Parametere seus valores são definidos como configuração de ambiente, que deve estar acessível dentro do script do PowerShell. Para argumentos sem nome, passe uma cadeia de caracteres vazia para nomear a entrada. Argumentos sem nome são passados para script semelhante ao seguinte exemplo:myscript.sh publicParam1value publicParam2value secret1value secret2value
Excluir recurso de comando Executar da máquina
Esse comando remove o recurso Executar comando implantado anteriormente no computador. Se a execução do script ainda estiver em andamento, a execução será encerrada.
Remove-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -RunCommandName "RunCommandName"
Limitar o acesso ao comando Executar (versão prévia)
Embora o acesso remoto habilitado pelo comando Executar reduz a sobrecarga para executar determinadas tarefas em uma VM (máquina virtual), você também pode limitar o acesso remoto.
Gerenciar o acesso ao comando Executar usando o RBAC (controle de acesso baseado em função) do Azure
Use o RBAC do Azure para controlar quais usuários podem executar comandos e scripts usando o comando Executar.
A tabela a seguir descreve uma ação do comando Executar, a permissão necessária para executar a ação e a função RBAC que concede a permissão.
| Ação | Permissão | RBAC com permissão |
|---|---|---|
| Listar os comandos Run ou mostrar os detalhes do comando | Microsoft.HybridCompute/machines/runCommands/read |
Função Leitor embutida ou superior |
| Executar um comando | Microsoft.HybridCompute/machines/runCommands/write |
Função administrador de recursos de máquina conectada do Azure e superior |
Para controlar o acesso à funcionalidade Executar comando, use um dos papéis internos ou crie um papel personalizado que conceda permissão para o comando Executar.
Bloquear comandos de execução localmente
Você pode controlar se o agente do Computador Conectado permite o acesso à VM por meio de comandos Executar, adicionando a extensão de comando Executar a uma lista de permissões (inclusive) ou a uma lista de bloqueio (exclusiva).
Para obter mais informações, consulte Listas de permissões de extensão e listas de blocos.
O exemplo a seguir adiciona a extensão executar comando a uma lista de blocos em uma VM do Windows:
azcmagent config set extensions.blocklist "microsoft.cplat.core/runcommandhandlerwindows"
Este exemplo adiciona as extensões de comando Executar a uma lista de permissões em uma VM do Linux:
azcmagent config set extensions.allowlist "microsoft.cplat.core/runcommandhandlerlinux"
Próximas etapas
Para saber como usar o comando Executar, consulte os seguintes recursos: