En entornos de virtualización como Vagrant, es común necesitar ajustar la cantidad de memoria y CPUs asignadas a las máquinas virtuales según los requisitos del entorno. Esto puede realizarse de manera eficiente utilizando scripts como el siguiente:
#!/bin/bash # Lista de nombres de máquinas virtuales machines=("srvlwm01" "srvlww01" "srvlww02" "srvlwd01" "srvlwi01" "srvlwi02") # Tamaño de memoria deseado y número de CPUs memory_size=6144 cpu_count=2 # Apagar las máquinas virtuales for machine in "${machines[@]}"; do echo "Apagando $machine..." VBoxManage controlvm "$machine" acpipowerbutton done # Esperar un momento para asegurarse de que las máquinas se apaguen sleep 30 # Redimensionar la memoria y CPUs for machine in "${machines[@]}"; do echo "Redimensionando $machine..." VBoxManage modifyvm "$machine" --memory "$memory_size" --cpus "$cpu_count" echo "Configuración de $machine actualizada: CPUs=$cpu_count, RAM=${memory_size}MB" done # Encender las máquinas virtuales for machine in "${machines[@]}"; do echo "Encendiendo $machine..." VBoxManage startvm "$machine" --type headless done
Explicación del Script:
- Lista de Máquinas Virtuales (
machines
): Aquí se definen los nombres de las máquinas virtuales que se van a modificar. En este caso, se usan nombres como «srvlwm01», «srvlww01», etc. - Tamaño de Memoria y Número de CPUs: Se establecen las variables
memory_size
ycpu_count
con los valores deseados para la memoria en MB y el número de CPUs respectivamente. - Apagado de las Máquinas Virtuales: Se apagan todas las máquinas virtuales especificadas en
machines
utilizandoVBoxManage controlvm "$machine" acpipowerbutton
. - Espera: Se aguarda 30 segundos para asegurar que las máquinas se apaguen completamente antes de realizar los cambios de configuración.
- Redimensionamiento de Memoria y CPUs: Se itera sobre cada máquina virtual, utilizando
VBoxManage modifyvm
para ajustar la memoria y el número de CPUs según los valores definidos en las variables. - Encendido de las Máquinas Virtuales: Una vez completados los ajustes, se encienden nuevamente las máquinas virtuales en modo headless (
--type headless
).
Redimensionando manual a una VM
Para realizar estos ajustes manualmente a una VM específica, sigue estos pasos:
- Apagar la VM: Utiliza
VBoxManage controlvm NOMBRE_VM acpipowerbutton
para apagar la máquina virtual. SustituyeNOMBRE_VM
por el nombre de tu máquina virtual.
VBoxManage controlvm srvlwm01 acpipowerbutton
- Redimensionar Memoria y CPUs: Utiliza
VBoxManage modifyvm NOMBRE_VM --memory NUEVO_TAMAÑO --cpus NUEVO_NUMERO_CPUS
para ajustar la memoria y CPUs. SustituyeNOMBRE_VM
,NUEVO_TAMAÑO
yNUEVO_NUMERO_CPUS
por los valores deseados.
VBoxManage modifyvm srvlwm01 --memory 6144 --cpus 2
Encender la VM: Finalmente, enciende la máquina virtual.
VBoxManage startvm srvlwm01 --type headless
- Para verificar si el redimensionamiento de la memoria y las CPUs se realizó correctamente utilizando el comando
VBoxManage showvminfo <nombre_de_la_maquina>
, puedes hacer uso degrep
para filtrar la salida del comando y buscar las líneas específicas que contienen información sobre la memoria y las CPUs de la máquina virtual.
VBoxManage showvminfosrvlwm01 | grep -E 'Memory size|Number of CPUs'
:wq!