Создание образа qcow2 Devuan и запуск виртуальной среды из Terraform с бонусом
Здравствуйте, я бездарь. Статей о Terraform было немного, поэтому я решил написать эту.
Предыстория
Я часто слышал название Terraform, но не имел четкого представления о нем, поэтому решил попробовать.
Кроме того, я узнал, что можно использовать образы qcow2, которые являются образами виртуальных дисков для qemu, и подумал: "А почему бы мне не попробовать это в своей собственной среде?"
Если это удастся, то будет легко создать тестовую среду для моего текущего рабочего сервера. Мой домашний сервер, который я начал без особых раздумий, стал довольно активно использоваться, поэтому я хочу максимально увеличить его время безотказной работы, и возможность легко развертывать виртуальные среды очень обнадеживает.
Так или иначе, виртуальные среды — это виртуальные среды, и я откладывал их, думая, что это хлопотно... но благодаря Terraform я подумал, что это представление может исчезнуть, поэтому я взялся за это.
Хлопоты заключаются в том, что нужно помнить все опции virsh и qemu, и даже опции запуска qemu утомительны. Я хочу решить это с помощью Terraform.
Создание образа qcow2
Сначала создадим образ qcow2 для 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
После этого появится сообщение об установке, поэтому подключитесь и завершите установку.
sudo virt-viewer --connect qemu:///system devuan


Это немного сложно, но этот экран — это экран с ThinkPad X1 (которым я управляю) - VNC → мой самодельный ПК с ArtixLinux - virt-viewer → Devuan в виртуальной среде.
Если вы хотите отредактировать образ после установки:
sudo qemu-system-x86_64 -m 2G -smp 2 -drive file=devuan.qcow2,format=qcow2 -net nic -net user -vnc `0 -enable-kvm
подключитесь через VNC на порт 5900.
vncviewer 192.168.10.100:5900
Теперь образ qcow2 готов.
Настройка и запуск Terraform
Я написал следующее в 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"
}
}
Теперь запустим его.
terraform init
terraform plan
terraform apply
После запуска войдем в виртуальную среду.
Проверка IP.
$ sudo virsh domifaddr devuan-vm-new
Имя MAC-адрес Протокол Адрес
-------------------------------------------------------------------------------
vnet13 52`54`00`0a`e9`bc ipv4 192.168.122.216/24
Подтверждено. Давайте войдем.
$ 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`~$
ОК! Попробую запустить несколько экземпляров позже.
А затем уничтожу экземпляр.
terraform destroy
Бонус: Перераспределение образа qcow2
Официальный образ qcow2 Devuan не имел последней версии, поэтому я создал его сам и размещаю его для перераспределения ниже.
Это всеми любимый бонус.
https://files.soulminingrig.com
Пожалуйста, войдите, используя следующие данные:user : taropassword : toor
Обратите внимание, что пароль совпадает с паролем root по умолчанию для официального Devuan.
До скорого. Всего наилучшего.
Кстати, это уже второй раз, когда я пишу эту статью, потому что случайно удалил ее. Хи-хи.