再谈Vagrant

前言

两年前写过一篇关于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中查看。 

相关文章
相关标签/搜索