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_sizeycpu_countcon 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
machinesutilizandoVBoxManage 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 modifyvmpara 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 acpipowerbuttonpara apagar la máquina virtual. SustituyeNOMBRE_VMpor 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_CPUSpara ajustar la memoria y CPUs. SustituyeNOMBRE_VM,NUEVO_TAMAÑOyNUEVO_NUMERO_CPUSpor 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 degreppara 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!