vagrant是什么?
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
使用vagrant有什么好处?
按照上面针对vagrant的解释,说直白点就是一个虚拟机,我们在者虚拟机中配置一些东西,可以打包,当我们再次使用该虚拟机时,直接使用vagrant将这个已经打包好的虚拟机加载进来,之前的配置直接使用。实现快速开发。
安装vagrant需要准备什么?
virtualbox、vagrant、终端工具(我这里使用的是iterm2)、镜像文件(我这里以我ubuntu为例)
virtualbox下载地址:https://www.virtualbox.org/wiki/Downloads
vagrant 下载地址:https://www.vagrantup.com/downloads.html
iterm2 下载地址:
http://www.iterm2.com/downloads.html
ubuntu 下载地址:
https://pan.baidu.com/s/1kU8fUlD
如何安装?
第一步直接点击安装vagrat,安装好后,创建一个目录,我这里以我的mac的~目录为例,我在这下面创建了一个vagrant目录。
第二步安装好vagrant之后,将下载的ubuntu镜像拷贝到vagrant目录下面即可。
第三步开始安装。
// 安装ubuntu镜像
vagrant box add ubuntu ubuntu14.04
- - ubuntu 是安装的虚拟机名称
- - ubuntu14.04 是我们的镜像文件
// 初始化配置
vagrant init
- - 此时,会在vagrant的目录下面创建一个Vagrant的文件,这个文件主要是我们针对虚拟机的配置文件,后面会提及。
// 开启虚拟机
vagrant up
// 登录虚拟机
vagrant ssh
这样,我们就登录到ubuntu系统中去了,我们就随便玩吧!这里我们将系统源切换为阿里云的系统源内容
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak ,进行备份。sudo vim /etc/apt/sources.list 将里面的内容全部修改为下面链接的内容。https://github.com/bruceqqq/my_project/tree/master/linux/ubuntu,替换之后使用sudo apt-get update进行更新源。
ubuntu高级配置
目录共享:我们初始化配置的时候会产生vagrant一个文件,我们的所有配置就在这文件中配置即可。打开这个文件写入如下内容。共享目录主要是为了本地和虚拟机的内容实时同步。
config.vm.synced_folder "本机目录", "ubuntu目录", type: "nfs"
config.vm.network "private_network", ip: "静态ip" 这里的静态ip主要是便于访问服务器,可以任意填写,当我们配置了php环境,直接使用该IP访问即可。配置示例如下,192.168.1.31。
端口转发:将主机的访问端口转换为虚拟机的端口,这里以ubuntu的nginx的8088端口为例。我配置如下
config.vm.network "forwarded_port", guest: 80, host: 8080。前面的80是我本机访问时的端口,8088是服务器的端口号。
在我们配置完之后,一定得使用vagrant reload进行初始化一次,为什么我们要使用vagrant的配置文件来配置,上面提及到的端口转化,我们可以使用图形化界面操作的,但是有一个缺点,当我们的虚拟机进行重启了之后,这个配置就的重新配置一次。至于怎么使用图形化配置,请参考http://www.cnblogs.com/qqblog/p/6892165.html
打包分发?
打包分发就是将我们已经配置好的虚拟主机,打包为一个.box的文件,以后我们使用的时候,直接安装好vagrant,将该镜像文件加载进来即可使用。
vagrant package --output ubuntu.box(这里为你打包的名,只要是.box结尾即可)
vagrant常用命令
vagrant box list : 查看当前虚拟机
vagrant box add 虚拟机名 镜像文件 : 添加一个虚拟机
vagrant box remove 虚拟机名称 : 移除虚拟机
vagrant init 初始化一个虚拟机
vagrant up 开启虚拟机
vagrant ssh 登录虚拟机
vagrant suspend 挂起虚拟机
vagrant reload 重启虚拟机
vagrant halt 关闭虚拟机
vagrant status查看虚拟机状态
vagrant destory 删除虚拟机
更多命令参考官方文档:https://www.vagrantup.com/docs/cli/box.html