Vargant一个属于程序猿的虚拟机。
“这段程序明明在我的机器上运行的好好的,怎么到这就没法运行的”,
“我这儿都能运行,肯定是你机器的问题”。
在软件开发过程中往往由于开发环境不一致导致各种各样奇怪的问题,而是用Vagrant就可以很好的解决这种问题
Vagrant是用Ruby开发的,对虚拟机操作进行封装和简化,从而可以很方便的创建用于开发的虚拟机环境,Vagrant中的虚拟机都可以使用一个名叫BOX的东西来进行分发,下面主要记录一些Vagrant的基本使用方式和方法
安装Vargant
初始化工作目录
1 |
|
1 |
|
完成初始化后将在工作目录创建Vagrantfile文件
BOXES
- 添加BOX vargant box add
1 | vagrant box add precise32 http://files.vagrantup.com/precise32.box |
- 使用BOX
查看Vagrant文件如下,Vagrant默认使用名为base的BOX
1 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| |
修改config.vm.box,让vagrant使用新添加的BOX
1 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| |
启动和SSH登录
- 启动Vargant
1 | vagrant up |
- SSH登录Vagrant虚拟机
1 | vargant ssh |
windows下直接使用cmd会报错如下
如果windows本机安装了git客户端,可以在git-bash中使用vagrant ssh,也可以使用Putty等SSH客户端,链接地址如下
1 | Host: 127.0.0.1 |
- 文件同步
默认情况下虚拟机 /vagrant目录下则自动同步了当前工作区下的所有内容
自动化部署
vagrant内置对自动化部署的支持,使用该特性可以在vagrant up时自动安装所需要的软件
- 安装软件
在WORKSPACE目录下新建bootstrap.sh文件
1 | #/usr/bin/env bash |
修改WORKSPACE/Vagrantfile文件
1 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| |
该配置让Vagrant知道在虚拟机启动时,运行bootstrap.sh文件
文件路径$WORKSPACE目录的相对路径
网络
- 端口转发
使用该特性, 可以将虚拟机的端口映射到主机的特定端口上。
使用该特性需要修改WORKSPACE/Vagrantfile文件
1 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| |
修改文件后重新启动Vagrant 重新启动虚拟机
如图所示对本机8080端口的请求都将转发到虚拟机的80端口