第一步:安装virtualbox (本人virtualbox版本 4.3.30)
具体安装包请直接从官网下载:https://www.virtualbox.org/wiki/Downloads
第二步: 安装 vagrant (本人vagrant 版本 Vagrant 2.2.2)
vagrant -v
Vagrant 2.2.2
第三步:vagrant 基本命令
官网文档:https://www.vagrantup.com/docs/getting-started/index.html
vagrant box list:查看box列表
vagrant add box box 名字 box地址:添加box,自动帮你生成 Vagrantfile
vagrant init box 名字:初始化 Vagrantfile
vagrant up:启动虚拟机
vagrant ssh:连接虚拟机
vagrant halt:关闭虚拟机
vagrant reload:重新加载 Vagrantfile 文件
vagrant suspend:暂时挂起虚拟机
vagrant destroy:销毁虚拟机
vagrant status:查看虚拟机运行状态
vagrant package:导出 Box
在使用 Vagrant 的时候,遇到了这样一个问题:创建的 Ubuntu 虚拟机,需要访问外部网络,所以需要将虚拟机的网络模式设置为桥接模式(Bridged),于是就使用 VirtualBox 进行设置,但设置成功之后,每次 Vagrant 启动虚拟机的时候,都会进行网络模式重置,但如果用 VirtualBox 启动的话,就没有什么问题。
image.png
这个问题搞了好久,最后的解决方案是修改 Vagrantfile 配置文件,添加如下配置:
config.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
config.vm.boot_timeout = 20
boot_timeout是链接超时设置(20 秒),bridge后面表示桥接的网络模式(WiFi 网络),如果不进行设置的话,每次启动虚拟机的时候,会进行选择网络模式:
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Specific bridge 'en1: Wi-Fi (AirPort)' not found. You may be asked to specify
==> default: which network to bridge to.
==> default: Available bridged network interfaces:
1) en0: Wi-Fi (AirPort)
2) en1: Thunderbolt 1
3) en2: Thunderbolt 2
4) p2p0
5) awdl0
6) bridge0
7) vmnet1
8) vmnet8
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
default: Which interface should the network bridge to?
实例 Centos 7 box
1.目录
image.png
2.添加box
cd /Users/faunjoe/vagrant
vagrant box add centos centos-7.0-x86_64.box
3.查看box列表
vagrant box list
4.初始化centos7虚拟机
初始化完成后,会在当前目录下生成一个 VagrantFile 配置文件,里面是对虚拟机环境的一些配置(可以手动修改)
cd /Users/faunjoe/vagrant/centos7
vagrant init centos7
image.png
5.启动虚拟机
cd /Users/faunjoe/vagrant/centos7
vagrant up
image.png
6.连接虚拟机
vagrant ssh
image.png
7.关闭虚拟机
vagrant halt
image.png
8.销毁虚拟机
vagrant destroy
image.png
修改默认登录用户
默认的登录用户是vagrant,如果想实现默认root登录,可在Vagrantfile 文件中添加如下配置:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
(root默认密码是:vagrant)
修改box内存大小
直接通过virtualbox修改
修改Vagrantfile文件