Criando uma imagem qcow2 do Devuan e iniciando um ambiente virtual com Terraform, com um bônus

8 min

language: ja bn en es hi pt ru zh-cn zh-tw

Olá a todos. Não havia muitos artigos sobre Terraform, então decidi escrever um.

Contexto

Eu ouvia muito o nome Terraform, mas não tinha uma boa ideia do que era, então decidi experimentá-lo um pouco.
Além disso, parece que as imagens qcow2, que são imagens de disco virtual do qemu, também podem ser usadas, então pensei: 'Isso pode funcionar no meu ambiente, certo?'
Se isso for possível, parece que posso facilmente criar um ambiente de teste para o meu servidor de produção atual. Meu servidor doméstico, que comecei de forma descontraída, acabou tendo uma carga de trabalho considerável, então quero aumentar a taxa de operação o máximo possível. Ser capaz de implantar ambientes virtuais facilmente é muito encorajador.

De uma forma ou de outra, ambientes virtuais são ambientes virtuais, e eu os achava chatos... e os adiava, mas pensei que, graças ao Terraform, essa imagem poderia desaparecer, então decidi fazê-lo.
O que é chato é que você precisa memorizar todas as opções do virsh e do qemu, e até mesmo as opções para iniciar o qemu são tediosas. Quero resolver isso com Terraform.

Criação da imagem qcow2

Primeiro, criaremos uma imagem qcow2 do 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

Isso exibirá a mensagem de que a instalação está em andamento, então conecte-se e complete a instalação.

sudo virt-viewer --connect qemu:///system devuan

Image
Image

É um pouco complicado, mas esta tela é a tela do ThinkPad X1 que estou operando - VNCArtixLinux do meu PC montado - virt-viewerDevuan no ambiente virtual.
Se você quiser editar a imagem após a instalação,

  
sudo qemu-system-x86_64   -m 2G   -smp 2   -drive file=devuan.qcow2,format=qcow2   -net nic -net user   -vnc `0   -enable-kvm  

e conecte-se à porta 5900 do VNC.

  
vncviewer 192.168.10.100:5900  

Com isso, a imagem qcow2 está pronta.

Configuração e Inicialização do Terraform

Eu escrevi o seguinte em 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"
  }
}

Agora, vamos iniciá-lo.

  
terraform init  
terraform plan  
terraform apply  

E depois de iniciá-lo, faremos login no ambiente virtual.
Verificação do IP.

  
$ sudo virsh domifaddr devuan-vm-new  
 Nome     MAC Endereço     Protocolo     Endereço  
-------------------------------------------------------------------------------  
 vnet13     52`54`00`0a`e9`bc    ipv4         192.168.122.216/24  

Confirmado. Agora, vamos fazer login.

  
$ 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! Pretendo criar várias instâncias em uma data posterior.
E então, destruirei a instância.

  
terraform destroy  

Bônus: Redistribuição da imagem qcow2

Como a imagem qcow2 oficial do Devuan não tinha a versão mais recente, eu a criei desta vez e estou hospedando-a e redistribuindo-a abaixo.
É o bônus favorito de todos.
https//files.soulminingrig.com
Faça login com o seguinte:
user : taro
password : toor
Observe que a senha é a mesma que a senha root padrão oficial do Devuan.

Até a próxima. Obrigado.
A propósito, esta é a segunda vez que escrevo este artigo porque o apaguei por engano. Ops!

Related Posts