- Crea con
virt-installuna imagen de Debian Buster con formato qcow2 y un tamaño máximo de 3GiB. Esta imagen se denominarábuster-base,qcow2. El sistema de ficheros del sistema instalado en esta imagen será XFS. La imagen debe estar configurada para poder usar hasta dos interfaces de red por dhcp. El usuariodebiancon contraseñadebianpuede utilizar sudo sin contraseña. - Crea un par de claves ssh en formato ecdsa y sin frase de paso y
agrega la clave pública al usuario
debian - Utiliza la herramienta
virt-sparsifypara reducir al máximo el tamaño de la imagen - Sube la imagen y la clave privada ssh a alguna ubicación pública desde la que se pueda descargar.
- Escribe un shell script que ejecutado por un usuario con acceso a
qemu:///systemrealice los siguientes pasos:- Crea una imagen nueva, que utilice
buster-base.qcow2como imagen base y tenga 5 GiB de tamaño máximo. Esta imagen se denominarámaquina1.qcow2 - Crea una red interna de nombre
intracon salida al exterior mediante NAT que utilice el direccionamiento10.10.20.0/24 - Crea una máquina virtual (
maquina1) conectada a la redintra, con 1 GiB de RAM, que utilice como disco raízmaquina1.qcow2y que se inicie automáticamente. Arranca la máquina. - Crea un volumen adicional de 1 GiB de tamaño en formato RAW ubicado en el pool por defecto
- Una vez iniciada la MV
maquina1, conecta el volumen a la máquina, crea un sistema de ficheros XFS en el volumen y móntalo en el directorio/var/lib/pgsql. Ten cuidado con los propietarios y grupos que pongas, para que funcione adecuadamente el siguiente punto. - Instala en
maquina1el sistema de BBDDPostgreSQLque ubicará sus ficheros con las bases de datos en/var/lib/pgsqlutilizando una conexión ssh. - (Opcional) Puebla la base de datos con una BBDD de prueba (escribe en la tarea el nombre de usuario y contraseña para acceder a la BBDD).
- Crea una regla de NAT para que la base de datos sea accesible desde el exterior
- Pausa la ejecución para comprobar los pasos hasta este punto
- Continúa la ejecución cuando el usuario pulse 'C'
- Crea una imagen que utilice
buster-base.qcow2como imagen base y que tenga un tamaño de 4 GiB. Esta imagen se llamarámaquina2.qcow2 - Crea una nueva máquina (
maquina2) que utilice imagen anterior, con 1 GiB de RAM y que también esté conectada aintra. - Para el servicio
postgreSQL, desmonta el dispositivo de bloques, desmonta el volumen demaquina1, monta el volumen enmaquina2en el directorio/var/lib/pgsqlteniendo de nuevo cuidado con los propietarios y permisos del directorio. - Copia de forma adecuada todos los ficheros de configuración de
PostgreSQLdemaquina1amaquina2 - Instala
PostgreSQLenmaquina2a través de ssh - Conecta
maquina2al bridge exterior de tu equipo, comprueba la IP que tiene el equipo en el bridge exterior y muéstrala por la salida estándar. Desconectamaquina2deintra. - Comprueba que el servicio
PostgreSQLfunciona accediendo a través del bridge exterior. - Apaga
maquina1y aumenta la RAM demaquina2a 2 GiB.
- Crea una imagen nueva, que utilice
Aspectos a considerar en el script:
- Funcionalidad
- Estructura del código
- Limpieza y uso correcto de espacios, tabuladores, variables, líneas en blanco, comentarios.
- Portabilidad
- Se verifica que el paso es posible antes de realizarlo. Por
ejemplo, comprueba que la imagen buster-base.qcow2 está disponible
en la ubicación y el directorio destino tiene los permisos para
poder almacenarla. O antes de usar libvirt, se comprueba que el
usuario puede acceder a
qemu:///system
Alternativamente se puede entregar la tarea sin hacer el script, describiendo paso a paso la secuencia de comandos a ejecutar. En este caso el peso de la tarea será inferior.