vagrant使用简介

前言

  • Vagrant是什么?

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

  • Vagrant能做什么?

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

1. Vagrant常用命令

官方文档:https://www.vagrantup.com/docs/

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

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;

3.1. Vagrant内的站点访问速度慢?

How to make Vagrant performance not suck ?
Vagrant NFS configration

  • 使用NFS !important
  • 使用CPU多核心,加点内存
  • 打包保存自己的BOX,备用
  • 域名解析问题?

具体配置操作,参考原文 和 vagrant文档。

  • nfs权限问题
  • config.vm.synced_folder ‘.‘, ‘/vagrant‘, :nfs =>{
      :linux__nfs_options => ["no_root_squash"],
       :map_uid => 0,
       :map_gid => 0
    }
  • 域名解析慢的问题

    Vagrant: Slow internet connection in guest

  • config.vm.provider :virtualbox do |vb|
    #vb.gui = true
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
    end

3.2. 挂载失败的问题?

报错:

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

报错:

default: stdin: is not a tty

vi /root/.profile

#把 mesg n 替换成 tty -s && mesg n

3.3. redis 文件权限问题

报错:

redis Can‘t open the log file
redis 无法加载.rdb
redis 无法载入.rdb

解决办法:

把 redis:redis 用户组设置更改为 vagrant:vagrant.

Permissions error trying to dump Redis to a Vagrant shared folder

转自:http://rmingwang.com/vagrant-commands-and-config.html

时间: 2024-08-03 02:55:57

vagrant使用简介的相关文章

第一章 vagrant简介--Installing VirtualBox(7)

在开始之前,我推荐先安装VirtualBox,VirtualBox是Oracle公司提供的开源.跨平台的虚拟机,可以在Linux.Mac OS X.Windows上安装使用. 可以到http://virtualbox.org下载VirtualBox.VirtualBox提供了Windows.Mac OS X的软件安装包以及linux系统下丰富的发行版本,如果你找不到适合你的操作系统的安装包,可以采用编译安装的方式安装. 在写这篇文章的时候,vagrant支持的VirtualBox版本为4.0.x

Vagrant - 轻量级虚拟化工具简介

深入讲解视频可登陆:https://ke.qq.com/course/1405491 或腾讯课堂搜索:“诗泽园”,找到对应课程 讨论QQ群:44509570(入群请注明来源) 问题描述 1.虚拟化工具学习成本高 2.环境无法直接共享 3.虚拟化平台不统一 4.无法快速保存.还原某版本测试环境 解决方案:Vagrant 1.可以很方便的就建立起来一个虚拟环境 2.可以很快速的就把某版本的测试环境还原出来 3.可配置.轻量级.便携式 4.可共享,降低了开发者搭建环境的时间,提高了生产力 5.解决了“

CloudFoundry in 1 Box简介:PCF-Dev篇

在<CloudFoundry in 1 Box简介:Bosh-lite篇>我们介绍了Bosh-lite的架构和部署.在本篇中,我们将详细描述另一个CloudFoundry in 1 Box解决方案PCF-Dev. 1PCF-dev简介 PCF是Pivotal发行的Cloud Foundry商业版,PCF-Dev原名MicroPCF,是Pivotal为PCF的应用开发人员准备的一款App单虚拟机版的CloudFoundry.但是,麻雀虽小,五脏俱全.PCF-Dev虽然可以在仅仅一台虚拟式上即可运

Windows上使用Vagrant打造Laravel Homestead可协同跨平台开发环境

1.简介 Laravel 致力于让整个 PHP 开发过程变得让人愉悦,包括本地开发环境,为此官方为我们提供了一整套本地开发环境 —— Laravel Homestead. Laravel Homestead 是一个打包好各种 Laravel 开发所需要的工具及环境的 Vagrant 盒子(Vagrant 提供了一个便捷的方式来管理和设置虚拟机),该盒子为我们提供了优秀的开发环境,有了它,我们不再需要在本地环境安装 PHP.HHVM.Web服务器以及其它工具软件,我们也完全不用再担心误操作搞乱操作

基于vagrant工具在win7下免密登录linux

一.SSH加密方式 SSH采用的是"非对称密钥系统",即耳熟能详的公钥私钥加密系统,其安全验证又分为两种级别. 1. 基于口令的安全验证 这种方式使用用户名密码进行联机登录,一般情况下我们使用的都是这种方式.整个过程大致如下: (1)客户端发起连接请求. (2)远程主机收到用户的登录请求,把自己的公钥发给客户端. (3)客户端接收远程主机的公钥,然后使用远程主机的公钥加密登录密码,紧接着将加密后的登录密码连同自己的公钥一并发送给远程主机. (4)远程主机接收客户端的公钥及加密后的登录密

3、vagrant的3种网络连接方式

1. 简介 vagrant提供了3种网络连接方式,分别是forwarded ports,host-only networking和bridged networking 2. forwarded ports config.vm.network "forwarded_port", guest: 80, host: 80   //将vagrant虚拟机的80端口映射到主机的80端口 3. host-only networking config.vm.network "private

CloudFoundry in 1 Box简介:Bosh-lite

Pivotal Web Service主管工程师 产品经理 吴疆 一提起云计算服务,大家头脑中一般都会想到在一个机器轰鸣的数据中心,一个个机架排列在一起,一台台服务器在紧张的工作着,似乎搭建云计算环境都需要许多台强大的服务器.但是事实上,无论是提供IaaS服务的OpenStack,还是提供PaaS服务的CloudFoundry,都可以安装在一台计算机上,甚至可以只安装在一台虚拟机上. 0. 为什么需要单机版的云平台 无论是IaaS还是PaaS,云平台的主要设计目标都是抽象化和虚拟化系统资源,以达

Vagrant 部署python开发环境

Vagrant简介 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境.它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境. 在Windows下,也可以方便地使用Linux环境开发程序 官方文档 http://docs.vagrantup.com/v2/getting-started/index.html box https://vagrantcloud.com/discover/featured 准备工作 下载安装 VirtualBox

1、Vagrant初识

1. 简介 vagrant是一个命令行虚拟机管理工具,需借助virtualbox.vmware.hyper-v等虚拟机工具,可以安装在centos.mac or windows环境下,利用它可以快速部署虚拟化的测试环境 2. 安装virtualbox http://download.virtualbox.org/virtualbox/5.1.4/VirtualBox-5.1.4-110228-Win.exe http://download.virtualbox.org/virtualbox/5.