vagrant打包:
vagrant package --base vbox_vmname
vagrant 本地box添加:
vagrant box add --name vbox_vmname package.box
- vagrant 公钥
https://raw.githubusercontent.com/hashicorp/vagrant/main/keys/vagrant.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
mkdir -p /home/vagrant/.ssh
chmod 0700 /home/vagrant/.ssh
wget –no-check-certificate \
https://raw.githubusercontent.com/hashicorp/vagrant/main/keys/vagrant.pub \
-O /home/vagrant/.ssh/authorized_keys
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
2.1 centos 安装 Linux kernel headers
参考:https://www.tecmint.com/install-virtualbox-guest-additions-in-centos-rhel-fedora/
yum -y install epel-release
yum -y update
yum -y install make gcc kernel-headers kernel-devel perl dkms bzip2
export KERN_DIR=/usr/src/kernels/$(uname -r)
# 注意: 之后必须重启
sudo reboot
2.2 VirtualBox Guest Additions 在要打包的虚拟机中的安装
https://developer.hashicorp.com/vagrant/docs/providers/virtualbox/boxes
centos 要提前安装:
sudo yum install libX11 libXt libXext libXmu
wget http://download.virtualbox.org/virtualbox/6.1.40/VBoxGuestAdditions_6.1.40.iso
sudo mkdir /media/VBoxGuestAdditions
sudo mount -o loop,ro VBoxGuestAdditions_6.1.40.iso /media/VBoxGuestAdditions
sudo sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run
# rm VBoxGuestAdditions_6.1.40.iso
# sudo umount /media/VBoxGuestAdditions
# sudo rmdir /media/VBoxGuestAdditions
# 注意: 安装以上之后必须重启
- vagrant 用户密码
echo 'vagrant:vagrant' | chpasswd
- vagrant 用户 sudo 权限
echo 'vagrant ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
可能的问题
- 在Linux上发生在windows上自建的 vagrant box 的 vbox 虚拟机上传到linux下后无法加载usb 的问题,如下错误:
Stderr: VBoxManage: error: Implementation of the USB 2.0 controller not found!
之后在windows下重新调整该virtualbox再打包(界面里禁用usb 没有用)
最后通过运行
VBoxManage modifyvm centos7.9box0.1 --usb off
VBoxManage modifyvm centos7.9box0.1 --usbehci off
然后再打包,则可正常使用之