首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

再谈Vagrant

前言

两年前写过一篇关于Vagrant,最近因为环境需要重温了一下,所以又重新做了一次总结。

Vagrant是什么

Vagrant是构建在虚拟化技术之上的虚拟机运行环境管理工具。通过Vagrant可以轻松实现对虚拟机的管理,包括建立和删除虚拟机、配置虚拟机运行参数、管理虚拟机运行状态、自动化配置和安装开发环境各类软件、打包和分发虚拟机运行环境等,提供了一套基于配置文件和命令行的管理工具。

为什么要使用Vagrant

Vagrant可以为团队开发成员提供一份服务器运行环境的虚拟机,大家都使用统一的开发环境,避免“在我机器上运行是好的,怎么在你机器上不能运行”问题的发生。

Vagrant中Boxes是什么

Boxes是一个包含可运行的操作系统及软件的镜像包,你可以把它理解成一个箱子,箱子里面包含了虚拟机配置、虚拟机硬盘镜像,可以直接被添加到Vagrant中使用。使用box,将不再需要下载ISO镜像文件、新建虚拟机、修改虚拟机配置等操作,因为box文件已经包含了这些,可直接拿过来使用。

Vagrant安装、配置及使用

1.下载VirtualBox并安装

在线下载地址https://www.virtualbox.org/wiki/Downloads

2.下载Vagrant并安装

可以到https://www.vagrantup.com/downloads.html,选择需要的版本进行下载。

3.下载box

vagrantbox种类比较多,可以到http://www.vagrantbox.es/,选择需要的类型进行下载,示例使用下载了Ubuntu precise 64 VirtualBox版本,地址:http://files.vagrantup.com/precise64.box

4.使用box

在使用box之前,创建以下目录结构:

--Applications

--vagrant

--boxes

—works

执行以下命令:

cd ~/Applications/

mkdir vagrant

cd vagrant

mkdir boxes

mkdir works

然后将下载的precise64.box移动到boxes目录下,然后执行以下命令:

vagrant box add ubuntuprecise64.box

cd ..

cd works

vagrant init ubuntu #在works目录下生成Vagrantfile文件

5.修改Vagrantfile文件

然后保存。

6.启动Vagrant

使用命令:vagrant up

如果执行受限,使用sudo。启动过程中,可能需要选择网络方式,如下图。

7.验证是否启动成功

进入works目录下,执行以下命令:

vagrant ssh

成功连接则启动成功,然后就可以在虚拟机系统中安装应用及操作了,例如安装mysql等。

8.安装MySQL

执行以下命令安装MySQL,

sudo apt-get update

sudo apt-get install mysql-server #过程中需要设置root用户的密码,一定要记住

sudo mysql_secure_installation #配置MySQL

9.验证MySQL是否安装成功

在第8步骤的命令行继续执行命令,

mysql -u root -p

输入密码后,如果成功进入则安装和启动成功。

10.虚拟机外连接MySQL

MySQL是在虚拟机中安装启动的,在外部要使用客户端进行连接访问,需要做如下操作:

10.1 进入works目录,执行vagrant ssh,然后执行mysql -u root -p,进入mysql,接着执行grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;,接着执行flush privileges;,最后退出。

10.2 接上一步,执行sudo vi /etc/mysql/my.cnf,找到bind_address=127.0.0.1,在其前面添加#,保存。

10.3 关闭Vagrant,然后重新启动Vagrant。

10.4 在外部使用任意MySQL客户端做连接测试。

11.关闭Vagrant

进入works目录下,执行以下命令:

vagrant halt

12.导出本地box

构建好的开发环境可以导出给团队成员使用,这样团队的开发环境就统一了。可以使用如下命令导出box,

vagrant package --base 虚拟机实例的名称 --output 导出后的box名称

例如:

这里需要注意的是虚拟机实例的名称,这个名称是虚拟机里面实例的名称,可以到VirtualBox中查看。

END

如果觉得有收获,记得关注、点赞、转发。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180129G01PF200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券