Vagrant简介和使用

Vagrant是什么?
Vagrant 是一款用来构建虚拟开发环境的工具,它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统。


Vagrant能做什么?

统一开发环境。一次配置打包,统一分发给团队成员,统一团队开发环境,解决诸如“编码问题”,“缺少模块”,“配置文件不同”带来的问题;
避免重复搭建开发环境。新员工加入,不用浪费时间搭建开发环境,快速加入开发,减少时间成本的浪费;
多个相互隔离开发环境。可以在不用box里跑不同的语言,或者编译安装同一语言不同版本,搭建多个相互隔离的开发环境,卸载清除时也很快捷轻松。


安装 和 配置?

https://www.vagrantup.com
https://www.virtualbox.org/wiki/Downloads
mac上是傻瓜式一键安装

1. #Vagrant常用命令

1.1. 添加box
#提前下载好的box文件,~/box/precise64.box,我们给这个box命名为ubuntu12.04
vagrant box add ubuntu12.04 ~/box/precise64.box
#box文件也可以是远程地址 base 为默认名称
#vagrant box add base http://files.vagrantup.com/lucid64.box

1.2. 初始化
#打开目录
#cd ~/vagrant/work
#初始化
vagrant init
#如果你添加的box名称不是base,那么需要在初始化的时候指定名称,例如
vagrant init ubuntu12.04

1.3. 启动虚拟机
vagrant up

1.4. ssh到虚拟机
vagrant ssh

1.5. 重启虚拟机(重新载入配置文件)
vagrant reload

1.6. 打包分发
vagrant package

1.7. 更多命令查看帮助
vagrant -h

vagrant的命令详解

命令 作用
vagrant box add 添加box的操作
vagrant init 初始化box的操作,会生成vagrant的配置文件Vagrantfile
vagrant up 启动本地环境
vagrant ssh 通过 ssh 登录本地环境所在虚拟机
vagrant halt 关闭本地环境
vagrant suspend 暂停本地环境
vagrant resume 恢复本地环境
vagrant reload 修改了 Vagrantfile 后,使之生效(相当于先 halt,再 up)
vagrant destroy 彻底移除本地环境
vagrant box list 显示当前已经添加的box列表
vagrant box remove 删除相应的box
vagrant package 打包命令,可以把当前的运行的虚拟机环境进行打包
vagrant plugin 用于安装卸载插件
vagrant status 获取当前虚拟机的状态
vagrant global-status 显示当前用户Vagrant的所有环境状态

2. #主要配置
开发目录下有一个文件Vagrantfile,里面包含有大量的配置信息,主要包括三个方面的配置,虚拟机的配置、SSH配置、Vagrant的一些基础配置。
  打开看一下,注释很全,所以不用担心不会配置了,下面主要备忘几个常用配置:


2.1. box设置
config.vm.box = "ubuntu12.04"

2.2. hostname设置
config.vm.hostname = "for_work"

2.3. 虚拟机网络设置
#config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "public_network"

2.4. 同步目录
config.vm.synced_folder "../data", "/vagrant_data"

2.5. 端口转发
config.vm.network "forwarded_port", guest: 80, host: 8080

2.6. 内存和cpu核心
 config.vm.provider "virtualbox" do |vb|
#Display the VirtualBox GUI when booting the machine
vb.gui = true
#Customize the amount of memory on the VM:
vb.memory = "1024"
vb.cpus = 2
vb.name = "my_vm"
end

3. #注意事项
使用 Apache/Nginx 时会出现诸如图片修改后但页面刷新仍然是旧文件的情况,是由于静态文件缓存造成的。需要对虚拟机里的 Apache/Nginx 配置文件进行修改:
# Apache 配置添加:
EnableSendfile off
# Nginx 配置添加:
sendfile off;


报错:
Failed to mount folders in Linux guest. This is usually because the "vboxsf" file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly. The command attempted was:

尝试:
//sudo apt-get install virtualbox-guest-dkms
sudo apt-get install virtualbox-guest-utils


参考文章:

vagrant系列一:vagrant的安装与初识

Vagrant简介和安装配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值