Mac 中使用 Vagrant 和 Virtual 搭建虚拟机
介绍
使用Vagrant+VirtualBox在本机快速搭建虚拟机开发环境
Vagrant提供易于配置、可复制和可移植的工作环境。Vagrant需要依赖某项具体的虚拟化技术,这里我们选择VirtualBox
安装
VirtualBox
.dmg
直接装就好了
Vagrant
brew tap hashicorp/tap
brew install vagrant
查看是否安装成功
$ vagrant version
Installed Version: 2.2.18
Latest Version: 2.2.18
使用
配置目录
- VirtualBox 虚拟机存放位置: 全局设定-> 常规->默认虚拟电脑位置
- Vagrantfile 存放位置:
mkdir
创建就好
下载 box
boxes是vagrant环境的包格式,在任何平台上都可以使用同一个box。
box组成:
- 特定于单个虚拟化技术提供商的压缩文件,例如virtualbox的导出文件
- 元数据
- box 信息
添加box
add
后面跟box文件地址
--name
后面是你命名的box名字
$ vagrant box add ~/Downloads/ubuntu18.04.box --name ubuntu-18.04
查看本机安装的box
$ vagrant box list
ubuntu-18.04 (virtualbox, 0)
创建虚拟机
默认生成Vagrantfile
init 命令创建了一个默认的Vagrantfile
mkdir ubuntu-18.04
cd ubuntu-18.04
vagrant init ubuntu-18.04
自己编写Vagrantfile
这里有一个在网上搜索到的模版,可以根据自己的需要修改,或者搜索更复杂的写法,语言是Ruby
Vagrant.configure("2") do |config|
(1..4).each do |i|
#定义节点变量
config.vm.define "node#{i}" do |node|
# box配置
node.vm.box = "ubuntu-18.04"
# 设置虚拟机的主机名
node.vm.hostname = "node#{i}"
# 设置虚拟机的IP
node.vm.network "private_network", ip: "192.168.60.#{10+i}"
# 设置主机与虚拟机的共享目录
# node.vm.synced_folder "/Users/meetmax", "/home/vagrant/code"
# VirtaulBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "node#{i}"
# 设置虚拟机的内存大小
v.memory = 4096
# 设置虚拟机的CPU个数
v.cpus = 2
end
end
end
end
启动虚拟机
需要在Vagrantfile
所在目录执行
vagrant up
其他命令
- 连接虚拟机
vagrant ssh [name|id]
- 关闭虚拟机 不指定机器就根据当前目录的
Vagrantfile
关闭所有
vagrant halt [name|id]
- 查看虚拟机状态
vagrant status
- 重启虚拟机
vagrant reload
- 销毁虚拟机
vagrant destroy