两年前写过一篇关于Vagrant,最近由于环境须要重温了一下,因此又从新作了一次总结。html
Vagrant是什么mysql
Vagrant是构建在虚拟化技术之上的虚拟机运行环境管理工具。经过Vagrant能够轻松实现对虚拟机的管理,包括创建和删除虚拟机、配置虚拟机运行参数、管理虚拟机运行状态、自动化配置和安装开发环境各种软件、打包和分发虚拟机运行环境等,提供了一套基于配置文件和命令行的管理工具。sql
为何要使用Vagrantubuntu
Vagrant能够为团队开发成员提供一份服务器运行环境的虚拟机,你们都使用统一的开发环境,避免“在我机器上运行是好的,怎么在你机器上不能运行”问题的发生。服务器
Vagrant中Boxes是什么网络
Boxes是一个包含可运行的操做系统及软件的镜像包,你能够把它理解成一个箱子,箱子里面包含了虚拟机配置、虚拟机硬盘镜像,能够直接被添加到Vagrant中使用。使用box,将再也不须要下载ISO镜像文件、新建虚拟机、修改虚拟机配置等操做,由于box文件已经包含了这些,可直接拿过来使用。ssh
Vagrant安装、配置及使用ide
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 ubuntu precise64.box
cd ..
cd works
vagrant init ubuntu #在works目录下生成Vagrantfile文件
5.修改Vagrantfile文件
找到config.vm.network “public_network",去掉前面的#,而后换行,在其后添加须要的端口映射,如mysql端口,
config.vm.network "forwarded_port", guest: 3306, host: 3306
而后保存。
6.启动Vagrant
使用命令:vagrant up
若是执行受限,使用sudo。启动过程当中,可能须要选择网络方式,以下图。
这里能够选择1) en0: Wi-Fi (AirPort),而后继续启动,若是没有报错,则启动成功。这里可能每次启动都须要作选择网络方式,能够配置成自动的方式,即修改Vagrantfile文件,在config.vm.network “public_network”后添加bridge: "en0: Wi-Fi (AirPort)”,结果以下。
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名称
例如:
vagrant package --base works-default-1569977899-11232 --output new-box.box
这里须要注意的是虚拟机实例的名称,这个名称是虚拟机里面实例的名称,能够到VirtualBox中查看。