pl_*_*ock 28
在与 vagrant 共度时光后,我得到了自定义框的解决方案。首先在 libvirt/qvm 中安装任何 Linux 操作系统并登录到它进行自定义并vagrant
使用密码创建用户vagrant
adduser vagrant
Run Code Online (Sandbox Code Playgroud)
vagrant
用户应该能够在没有密码提示的情况下运行 sudo 命令
sudo visudo -f /etc/sudoers.d/vagrant
Run Code Online (Sandbox Code Playgroud)
并粘贴
vagrant ALL=(ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)
做任何你想做的事情来定制你的流浪者盒子,openssh-server
如果之前没有安装过,请安装
sudo apt-get install -y openssh-server
Run Code Online (Sandbox Code Playgroud)
把来自流浪用户的 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
Run Code Online (Sandbox Code Playgroud)
打开 sudovi /etc/ssh/sshd_config
并更改
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)
使用重新启动 ssh 服务
sudo service ssh restart
Run Code Online (Sandbox Code Playgroud)
为工具安装额外的开发包以正确编译和安装
sudo apt-get install -y gcc build-essential linux-headers-server
Run Code Online (Sandbox Code Playgroud)
做任何你想做的改变并关闭虚拟机。现在,来到运行来宾 VM 的主机,然后转到 /var/lib/libvirt/images/
并选择您在其中进行更改并复制到某处的原始图像/test
cp /var/lib/libvirt/images/test.img /test
Run Code Online (Sandbox Code Playgroud)
创建两个文件metadata.json
,并Vagrantfile
在/test
做报名中metadata.json
{
"provider" : "libvirt",
"format" : "qcow2",
"virtual_size" : 40
}
Run Code Online (Sandbox Code Playgroud)
并在 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
Run Code Online (Sandbox Code Playgroud)
使用将 test.img 转换为 qcow2 格式
sudo qemu-img convert -f raw -O qcow2 test.img ubuntu.qcow2
Run Code Online (Sandbox Code Playgroud)
将 ubuntu.qcow2 重命名为 box.img
mv ubuntu.qcow2 box.img
Run Code Online (Sandbox Code Playgroud)
注意:目前,libvirt-vagrant 只支持 qcow2 格式。因此,不要更改格式,只需将其重命名为 box.img。因为默认情况下它接受名称为 box.img 的输入。
创建框
tar cvzf custom_box.box ./metadata.json ./Vagrantfile ./box.img
Run Code Online (Sandbox Code Playgroud)
将框添加到流浪者
vagrant box add --name custom custom_box.box
Run Code Online (Sandbox Code Playgroud)
转到要初始化 vagrant 的任何目录并运行下面的命令以创建 Vagrant 文件
vagrant init custom
Run Code Online (Sandbox Code Playgroud)
开始配置流浪虚拟机
vagrant up --provider=libvirt
Run Code Online (Sandbox Code Playgroud)
请享用 !!!