- Crea con
virt-install
una 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 usuariodebian
con contraseñadebian
puede 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-sparsify
para 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:///system
realice los siguientes pasos:- Crea una imagen nueva, que utilice
buster-base.qcow2
como imagen base y tenga 5 GiB de tamaño máximo. Esta imagen se denominarámaquina1.qcow2
- Crea una red interna de nombre
intra
con 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.qcow2
y 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
maquina1
el sistema de BBDDPostgreSQL
que ubicará sus ficheros con las bases de datos en/var/lib/pgsql
utilizando 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.qcow2
como 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 enmaquina2
en el directorio/var/lib/pgsql
teniendo de nuevo cuidado con los propietarios y permisos del directorio. - Copia de forma adecuada todos los ficheros de configuración de
PostgreSQL
demaquina1
amaquina2
- Instala
PostgreSQL
enmaquina2
a través de ssh - Conecta
maquina2
al bridge exterior de tu equipo, comprueba la IP que tiene el equipo en el bridge exterior y muéstrala por la salida estándar. Desconectamaquina2
deintra
. - Comprueba que el servicio
PostgreSQL
funciona accediendo a través del bridge exterior. - Apaga
maquina1
y aumenta la RAM demaquina2
a 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.