Automação Avançada no VMware Workstation 17 via Interface de Linha de Comando

O VMware Workstation 17 Pro oferece uma robusta interface de linha de comando (CLI) que permite transcender a interface gráfica tradicional, facilitando a integração em pipelines de CI/CD e fluxos de trabalho de DevOps. O uso de utilitários como vmrun e vmware-vdiskmanager é essencial para engenheiros que buscam automatizar o provisionamento e a execução de ambientes de teste.

Utilitários Essenciais de CLI

1. Gerenciamento de Armazenamento com vmware-vdiskmanager

Este utilitário é dedicado à manipulação de discos virtuais (.vmdk). Ele permite realizar operações críticas sem a necessidade de abrir o console do VMware. - Criação de Disco: vmware-vdiskmanager -c -s 50GB -a lsilogic -t 0 unidade_dados.vmdk

  • Redimensionamento: vmware-vdiskmanager -x 120GB sistema_operacional.vmdk
  • Otimização (Shrink): vmware-vdiskmanager -k disco_dinamico.vmdk

2. Controle de Ciclo de Vida com vmrun

O vmrun é a ferramenta principal para interagir com as máquinas virtuais (VMs) em execução. Ele gerencia estados de energia, snapshots e até interação com o SO convidado. - Iniciar VM em Background: vmrun -T ws start "C:\VMs\Ubuntu\srv.vmx" nogui

  • Desligamento Seguro: vmrun stop "C:\VMs\Ubuntu\srv.vmx" soft
  • Listagem de Instâncias Ativas: vmrun list
  • Snapshots: vmrun snapshot "C:\VMs\Ubuntu\srv.vmx" "Estado_Pre_Teste"

Estratégias de Automação para Testes

A automação real ocorre quando combinamos essas ferramentas com scripts de shell ou Python. Abaixo, apresentamos um exemplo de script em Bash projetado para preparar um ambiente, executar um comando remoto via SSH e finalizar o processo. ```

#!/bin/bash

Configurações do Ambiente

PATH_VMX="/home/usuario/vms/debian_test/debian_test.vmx" IP_CONVIDADO="192.168.122.50" USUARIO_REMOTO="admin" CHAVE_PRIVADA="~/.ssh/id_rsa"

function iniciar_ambiente() { echo "[INFO] Verificando estado da VM..." if ! vmrun list | grep -q "$PATH_VMX"; then echo "[INFO] Iniciando VM no modo headless..." vmrun -T ws start "$PATH_VMX" nogui fi }

function aguardar_servico_ssh() { echo "[INFO] Aguardando disponibilidade do SSH..." local tentativas=0 until nc -z -v -w5 $IP_CONVIDADO 22 || [ $tentativas -eq 12 ]; do sleep 10 ((tentativas++)) echo "[RETRY] Tentativa de conexão $tentativas..." done

if [ $tentativas -eq 12 ]; then
    echo "[ERRO] Timeout ao tentar conectar via SSH."
    exit 1
fi

}

function disparar_testes() { echo "[EXEC] Iniciando suite de testes remotos..." ssh -i "$CHAVE_PRIVADA" -o StrictHostKeyChecking=no "$USUARIO_REMOTO@$IP_CONVIDADO" << 'EOF' cd /opt/app/tests ./run_regression.sh > result.log exit EOF }

function encerrar_ambiente() { echo "[INFO] Finalizando VM..." vmrun stop "$PATH_VMX" soft }

Fluxo de Execução

iniciar_ambiente aguardar_servico_ssh disparar_testes encerrar_ambiente

echo "[INFO] Workflow concluído com sucesso."


### Integração e Monitoramento

Além da execução simples, a CLI permite a integração com sistemas de monitoramento externos. Ao capturar a saída de comendos `vmrun`, é possível alimentar dashboards ou disparar alertas baseados no estado das VMs. - **Logs:** Sempre direcione a saída de erro (stderr) para arquivos de log para auditoria posterior: `vmrun list >> status_vms.log 2>&1`.
- **Segurança:** Evite o uso de senhas em texto claro. Utilize a infraestrutuar de chaves SSH (authorized\_keys) para permitir que o host de automação execute comandos dentro das VMs convidadas de forma segura.
- **Performance:** O uso do parâmetro `nogui` reduz drasticamente o overhead de memória e CPU no host, permitindo a execução de uma densidade maior de VMs simultâneas para testes paralelos.

O domínio desas ferramentas transforma o VMware Workstation de um simples hypervisor de desktop em um componente vital de uma infraestrutura programável.

Tags: vmware-workstation automation shell-script Virtualization devops

Publicado em 7-13 13:06