як створити власну візитну скриньку з екземпляру libvirt / kvm?


16

В Інтернеті є багато ресурсів, щоб створити власну візитну коробку з екземпляру VirtualBox. Але я хочу знати прямий метод створення користувальницької коробки бродяг безпосередньо з екземпляра kvm / libvirt. Будь ласка, не пропонуйте бродячих або мутантних, які перетворюють VirtualBox на іншого постачальника.

Відповіді:


21

витративши час із бродячим, я отримав рішення для власної коробки. Перш за все, встановіть будь-яку ОС Linux у libvirt / qvm та увійдіть до неї для налаштування та створіть vagrantкористувача з паролемvagrant

adduser vagrant

vagrant Користувач повинен мати можливість виконувати команди sudo без запиту пароля

sudo visudo -f /etc/sudoers.d/vagrant

і пасти

vagrant ALL=(ALL) NOPASSWD:ALL

робіть все, що ви хочете, щоб налаштувати свій бродячий ящик та встановити його, openssh-serverякщо він не встановлений раніше

sudo apt-get install -y openssh-server

покласти ключ ssh від бродячого користувача

mkdir -p /home/vagrant/.ssh
chmod 0700 /home/vagrant/.ssh
wget --no-check-certificate \
https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub \
-O /home/vagrant/.ssh/authorized_keys
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh

відкрити судо vi /etc/ssh/sshd_configі змінити

PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no

перезапустити службу ssh за допомогою

 sudo service ssh restart

встановити додаткові пакети розробки для інструментів для правильної компіляції та установки

sudo apt-get install -y gcc build-essential linux-headers-server

будь-які зміни, які ви хочете, і вимкнення VM. тепер, перейдіть на хост-машину, на якій працює гостьовий VM, і перейдіть на /var/lib/libvirt/images/і виберіть необроблене зображення, в якому ви зробили зміни, і скопіюйте десь наприклад/test

cp /var/lib/libvirt/images/test.img  /test 

створити два файли metadata.jsonі Vagrantfileв /test запису робити вmetadata.json

{
  "provider"     : "libvirt",
  "format"       : "qcow2",
  "virtual_size" : 40
}

і в Vagrantfile

Vagrant.configure("2") do |config|
         config.vm.provider :libvirt do |libvirt|
         libvirt.driver = "kvm"
         libvirt.host = 'localhost'
         libvirt.uri = 'qemu:///system'
         end
config.vm.define "new" do |custombox|
         custombox.vm.box = "custombox"       
         custombox.vm.provider :libvirt do |test|
         test.memory = 1024
         test.cpus = 1
         end
         end
end

конвертувати test.img у формат qcow2 за допомогою

sudo qemu-img convert -f raw -O qcow2  test.img  ubuntu.qcow2

перейменуйте ubuntu.qcow2 у box.img

mv ubuntu.qcow2 box.img 

Примітка: на даний момент libvirt-vagrant підтримує лише формат qcow2. тому не змінюйте формат, просто перейменуйте його на box.img. тому що він за замовчуванням займає введення з ім'ям box.img.
створити вікно

tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img 

додати коробку до бродячого

vagrant box add --name custom custom_box.box

перейдіть до будь-якого каталогу, де ви хочете ініціалізувати бродягу та запустіть команду внизу, яка створить файл Vagrant

vagrant init custom

почати налаштування бродячого VM

vagrant up --provider=libvirt 

насолоджуйся !!!


2
Я хотів би зазначити, що, витративши весь цей час на те, щоб виконувати свої концерти, бродяг витрачає еквівалентну кількість часу, декомпресуючи цей дьоготь знову. : fubar:
ThorSummoner

2
щоб пропустити об’їзний тар / untar, ви, можливо, зможете запустити ваші Vagrantfile, meta.json і box.img безпосередньо в~/.vagrant.d/boxes/<name>/0/libvirt/
ThorSummoner

UPvote за таке чітке пояснення відносно складної процедури. Спасибі
Avi Mehenwal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.