Crear una imagen qcow2 de Devuan e iniciar un entorno virtual desde Terraform con un extra
Hola, soy un inútil. No había muchos artículos sobre Terraform, así que decidí escribir uno.
Antecedentes
Había oído mucho el nombre de Terraform, pero no tenía una idea clara de qué era, así que quise probarlo un poco.
Además, parece que las imágenes qcow2, que son imágenes de disco virtual de qemu, también se pueden usar, así que pensé, '¿Esto podría funcionar en mi propio entorno, no?'
Si esto es posible, podría usarlo fácilmente como entorno de prueba para mi servidor de producción actual. Mi servidor doméstico, que empecé de forma casual, ha llegado a un nivel de funcionamiento considerable, así que quiero aumentar su tasa de disponibilidad tanto como sea posible, y poder desplegar entornos virtuales fácilmente es muy alentador.
De una forma u otra, los entornos virtuales son entornos virtuales, y pensaba que eran molestos... y los había pospuesto, pero gracias a Terraform, pensé que esa imagen podría desaparecer, así que lo haré.
Lo molesto es que tienes que recordar todas las opciones de virsh y qemu, e incluso las opciones para iniciar qemu son tediosas. Quiero resolver eso con Terraform.
Creación de la imagen qcow2
Primero, crearemos una imagen qcow2 de Devuan.
wget https://files.devuan.org/devuan_daedalus/installer-iso/devuan_daedalus_5.0.1_i386_netinstall.iso
qemu-img create -f qcow2 devuan.qcow2 10G
sudo chown libvirt-qemu:libvirt-qemu devuan.qcow2 devuan_daedalus_5.0.1_i386_netinstall.iso
sudo chmod 644 devuan.qcow2 devuan_daedalus_5.0.1_i386_netinstall.iso
sudo virt-install --name devuan --ram 1024 --disk path=./devuan.qcow2,size=10 --vcpus 1 --os-type linux --os-variant debian10 --network bridge=virbr0 --graphics vnc --console pty,target_type=serial --cdrom devuan_daedalus_5.0.1_i386_netinstall.iso
Esto mostrará que la instalación está en curso, así que conéctese y complete la instalación.
sudo virt-viewer --connect qemu:///system devuan


Es un poco complicado, pero esta pantalla es la de mi ThinkPad X1 (que estoy usando) - VNC → mi PC de escritorio con ArtixLinux - virt-viewer → Devuan en el entorno virtual.
Si desea editar la imagen después de la instalación,
sudo qemu-system-x86_64 -m 2G -smp 2 -drive file=devuan.qcow2,format=qcow2 -net nic -net user -vnc `0 -enable-kvm
conéctese al puerto 5900 de VNC.
vncviewer 192.168.10.100:5900
Con esto, la imagen qcow2 está lista.
Configuración e inicio de Terraform
Escribí lo siguiente en vim main.tf.
terraform {
required_providers {
libvirt = {
source = "dmacvicar/libvirt"
version = "~> 0.7.1"
}
}
}
provider "libvirt" {
uri = "qemu:///system"
}
resource "libvirt_volume" "devuan_qcow2" {
name = "devuan.qcow2"
source = "./devuan.qcow2"
format = "qcow2"
}
resource "libvirt_domain" "devuan_vm" {
name = "devuan-vm-new"
memory = "1024"
vcpu = 2
network_interface {
network_name = "default"
}
disk {
volume_id = libvirt_volume.devuan_qcow2.id
}
console {
type = "pty"
target_port = "0"
target_type = "serial"
}
graphics {
type = "vnc"
listen_type = "address"
}
}
Ahora, lo iniciaremos.
terraform init
terraform plan
terraform apply
Una vez iniciado, iniciaremos sesión en el entorno virtual.
Verificación de la IP.
$ sudo virsh domifaddr devuan-vm-new
Nombre MAC Dirección Protocolo Dirección
-------------------------------------------------------------------------------
vnet13 52`54`00`0a`e9`bc ipv4 192.168.122.216/24
Confirmado. Ahora, iniciemos sesión.
$ ssh -l taro 192.168.122.216
The authenticity of host '192.168.122.216 (192.168.122.216)' can't be established.
ED25519 key fingerprint is SHA256`VAjob/o7gQXvmeNUodajSfdBky0eXd0RTwomP1wHtWk.
This host key is known by the following other names/addresses`
~/.ssh/known_hosts`5` 192.168.122.83
~/.ssh/known_hosts`6` 192.168.122.163
~/.ssh/known_hosts`7` 192.168.122.162
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning` Permanently added '192.168.122.216' (ED25519) to the list of known hosts.
taro@192.168.122.216's password`
Linux devuan 6.1.0-25-686 #1 SMP PREEMPT_DYNAMIC Debian 6.1.106-3 (2024-08-26) i686
The programs included with the Devuan GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Devuan GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
taro@devuan`~$
¡OK! Más adelante, intentaré levantar varias instancias.
Y luego destruiré la instancia.
terraform destroy
Extra: Redistribución de la imagen qcow2
La imagen qcow2 oficial de Devuan no tenía la última versión, así que la creé esta vez y la estoy alojando y redistribuyendo a continuación.
Es un extra que a todos les encanta.
https//files.soulminingrig.com
Inicie sesión a continuación:
user : taro
password : toor
Tenga en cuenta que la contraseña es la misma que la contraseña root predeterminada oficial de Devuan.
Hasta la próxima. Saludos.
Por cierto, esta es la segunda vez que escribo este artículo porque lo borré por error. ¡Ups!