Answers:
花时间与无业游民后,我得到了自定义框的解决方案。首先在libvirt / qvm中安装任何Linux操作系统,然后登录以进行自定义并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
进行所需的任何更改并关闭VM。现在,进入运行来宾VM的主机并转到, /var/lib/libvirt/images/
然后选择进行更改的原始映像并复制到某个地方/test
cp /var/lib/libvirt/images/test.img /test
创建两个文件metadata.json
并Vagrantfile
在/test
do中输入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 up --provider=libvirt
请享用 !!!
~/.vagrant.d/boxes/<name>/0/libvirt/