Проведя время с Vagrant, я получил решение для нестандартной коробки. Прежде всего, установите любую ОС 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
открыть sudo 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
сделайте любое изменение и выключите виртуальную машину. Теперь зайдите на хост-компьютер, на котором запущена гостевая виртуальная машина, и перейдите к /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
vagrant init custom
начать настройку vagrant VM
vagrant up --provider=libvirt
наслаждаться !!!
~/.vagrant.d/boxes/<name>/0/libvirt/