Como listar os ISOs montados e desmontá-los da linha de comando no VMware ESXi?

5

Eu tenho um host VMware ESXi 6 com vários convidados rodando nele. Existe um datastore com um arquivo ISO que está sendo usado por um ou mais desses clientes. Estou acessando o host ESXi por meio do ssh do linux, então o PowerCLI não é uma opção.

Q1: Como eu posso, a partir do VMware CLI, descobrir quais clientes têm esse arquivo ISO montado?

Q2: Como posso, depois de saber disso, desmontar esse arquivo ISO desses convidados, também da CLI do VMware?

Espero que sejam vim-cmd vmsvc subcomandos, mas não consegui encontrá-los.

    
por roelvanmeer 06.09.2016 / 09:29

2 respostas

6

Um rápido & solução bruta no shell via SSH seria escrever um pequeno script que conecta várias ações:

  1. Obtenha seus IDs de VM com vim-cmd vmsvc/getallvms|awk '{print $1}'|grep -o -E '[0-9]+' (liste todas as VMs, mostre apenas a primeira coluna com awk, filtre IPs e texto e linhas vazias com grep)
  2. Iterar sobre as linhas ( ash não tem matrizes como bash ) e verificar cada número / ID se uma ocorrência do nome ISO escolhido for encontrada na listagem de dispositivos de cada VM: vim-cmd vmsvc/device.getdevices yourVmId|grep -o -A 12 -E 'yourImageName.iso' | grep -c 'connected = true' (list todos os dispositivos, obtenha a área em torno de seu arquivo ISO, verifique se o ISO está atualmente montado / ativo)
  3. Obtenha o ID do dispositivo de cada unidade de CD (supondo que seja apenas uma, altere o código para várias unidades em uma única máquina) com um grep modificado da mesma listagem inicial: vim-cmd vmsvc/device.getdevices yourVmId|grep -o -B 4 -E 'yourImageName.iso'|grep -o -E 'key = [0-9]+'|grep -o -E '[0-9]+' (o grep duplo é necessário devido à falta opção de grupo -P )
  4. Use vim-cmd vmsvc/device.connection yourVmId yourDeviceId disconnect para desconectar o dispositivo. (Edit: Parece que isso não é totalmente correto, faz alguma coisa, mas não o que eu esperaria. Eu vou atualizar quando eu tiver tempo para investigar isso ainda mais)

O único problema que encontrei é que a mensagem "Unidade de CD bloqueada por convidado" pode aparecer no cliente VSphere ao fazer a última etapa, mas talvez isso possa ser desativado em geral.

    
por 06.09.2016 / 10:25
3

Use o PowerCLI ..

Ou apenas faça manualmente para as "várias" VMs.
Ou evite a situação, em primeiro lugar, desmontando após a instalação.

    
por 06.09.2016 / 10:32