Vagrant - 虚拟机管理
使用目的¶
本地安装各种linux 环境,搭建开发环境,模拟服务器等
window下安装¶
- 先安装虚拟机软件 https://www.virtualbox.org/
- 安装程序下载 https://developer.hashicorp.com/vagrant/install
安装后的一些配置¶
- virtualbox 全局配置这里 Default Machine Folder 默认是C盘下,如果安装的虚拟机系统多的话,这个目录非常大,可以考虑换D盘
- vagrant 的 box保存位置也是在C盘 默认是用户目录下 .vagrant.d目录,如果下载的镜像多这个也是很大,可以通过设置环境变量VAGRANT_HOME 改变box保存路径
NFS 文件共享¶
- 可以安装插件 https://github.com/winnfsd/vagrant-winnfsd
- vagrant plugin install vagrant-winnfsd
- 测试过ubuntu 20.04下可以用, 新版本因为这个插件的BUG 不能用
系统选择¶
- 镜像搜索 https://portal.cloud.hashicorp.com/vagrant/discover
- 搜索时候要看 Providers 是否支持 virtualbox
-
有的镜像最新版本可能不支持virtualbox, 所以还要看具体版本 https://portal.cloud.hashicorp.com/vagrant/discover/debian/bookworm64/versions

-
本地开发环境搭建一般可以用 ubuntu 目前可以选择 ubuntu/jammy64 对应 Ubuntu 22.04 LTS
- https://portal.cloud.hashicorp.com/vagrant/discover/ubuntu
- 服务器配置可以用 debian 比如 debian/bookworm64 (debian 12.2)
- https://portal.cloud.hashicorp.com/vagrant/discover/debian
安装镜像初始化¶
选择正确版本进入页面
https://portal.cloud.hashicorp.com/vagrant/discover/debian/bookworm64/versions/12.20250126.1

打开终端选择一个工作目录执行下面代码。
* 需要vagrantcloud.com 这个地址网络可以访问
目录下会创建一个 Vagrantfile 文件
可以用 vagrant ssh 就能直接进入系统,默认是vagrant 用户
一些常用配置¶
可以编辑Vagrantfile, 修改后用 vagrant reload命令可以重新加载
# 修改默认ssh转发端口
config.vm.network "forwarded_port", guest: 22, host: 2222, id: "ssh", disabled: "true"
config.vm.network "forwarded_port", guest: 22, host: 2021
# host-only ip
config.vm.network "private_network", ip: "192.168.56.210"
# 项目共享目录, 下面3行是nfs配置 如果不能用就删除掉
config.winnfsd.logging = "on"
config.winnfsd.uid = 1
config.winnfsd.gid = 1
config.vm.synced_folder "d:/workspace", "/winshare", type: "nfs"
# CPU 内存 配置
config.vm.provider "virtualbox" do |vb|
vb.cpus = 4
vb.memory = "2048"
end
镜像导出导入¶
导出时候用的base 名字

# 导出box镜像
vagrant package --base ubuntu-focal64_default_1689302966657_76025 --output ./my-ubuntu-focal64.box
# 导入box
vagrant box add my-ubuntu-focal64 my-ubuntu-focal64.box
# 查看 box
vagrant box list
# 删除 box
vagran box remove xxxx
# 初始化
vagrant init my-ubuntu-focal64
初始化之后 在把原先的配置文件拿过来 在重启
vagrant 用户¶
默认情况下 vagrant ssh 登录的话是用私钥
vagrant ssh-config 命令 可以看到私钥的位置

ssh客户端上可以直接用这个私钥登录
- 镜像导出导入后一般都会丢失这个私钥 导致无法启动, 可以加如下配置改变登录方式
root 用户¶
默认情况下root账号是不可以用密码登录ssh的,有时候想要连接sftp 用root权限直接编辑文件,这时候可以用密钥登录的方式,直接使用vagrant账号的密钥