作为一名程序猿,我们常常会遇到需要搭建开发环境的问题,特别是在新入职的时候,sublime, node, apache, mysql, php等等以及各种框架的安装。如果入职的是大公司有可能这些必要的开发环境运维人员会为我们安装好,如果是中小型公司那就需要开发者自己来搭建开发环境,而且还要避免安装的版本不同等问题,这就需要用到我们今天介绍的这款工具了。Vagrant目前是国内互联网公司应用最多的内部开发环境工具。Vagrant是我们开发者的福音,使我们完全摆脱了重复配置环境的处境。

前期准备

在搭建之前我们将用到以下软件:

  • vagrant这里我们选用1.8.6的版本,可在这里下载对应平台下的安装包
  • virtualBox这里我使用virtualBox虚拟机,当然也可以使用其他虚拟机,
  • xshell5,window用户需要安装xshell5用来登录linux系统环境

这些软件安装好后接下来才真正开始使用vagrant

初始化

在xshell中执行

cd D:
mkdir vagrant/centos
cd vagrant/centos
vagrant init

此时可以看到在centos文件夹下有一个Vagrantfile文件,

用sublime或其他编辑器打开此文件找到config.vm.box = "base",并将它改为config.vm.box = "centos/7",同时也可以添加一下这个box的版本号 config.vm.box_version="1804.02"

这里为什么将base改为centos/7?

我这里打算用linux的centos7发行版,vagrant为我们提供了很多的box,我们可以在这里查询到https://app.vagrantup.com/boxes/search,选择centos7,就可以看到它推荐我们将config.vm.box = "centos/7",同时选好我们使用的版本,这里我们选择用1804.02

vagrant up

在这里使用window的朋友需要将powershell升级到3.0及以上

如何升级可参考这篇博客https://blog.csdn.net/i_am_wangbo/article/details/50033473

升级好后再次执行vagrant up



可以看到vagrant在自动下载我们配置好的box



如果出现如图所示情况,我们可以更改下Vagrantfile的配置,



启用vb.gui = true配置,以图形界面的形式启动虚拟机,这样我们就能看到具体是什么报错了



这里我们需要开启硬件加速

具体如何开启可参考这篇https://jingyan.baidu.com/article/4b52d702a3e0aafc5d774b7c.html

设置好后再次执行vagrant up,这次没有报错了,此时我们可以看到执行到了centos的登录界面

至此mac用户可以直接执行vagrant ssh

window用户可以根据提供的address username port新建ssh连接

输入用户名后,密钥我们点击浏览,选择文件D:\vagrant\CentOS.vagrant\machines\default\virtualbox\private_key,这是刚生成的密钥



至此我们已经登录进了centos系统了。

进入系统后我们就可以安装配置我们的环境了,具体的PHP开发环境可参LNMP + Apache 架构配置.

可开发环境安装好后如何让他人和我有相同的环境配置呢?

box的打包与分发

现在开发环境安装好后我们需要将我们的box打包,

vagrant package --output D:/vagrant/box/CentOS.box

我们可以看到在box文件夹下生成了一个CentOS.box文件,我们可以通过U盘或网盘将这个box分发给其他同事。

提他同事安装后vagrant就可以用这个box了

载入这个box

vagrant box add CentOS.box

vagrant up就可以直接使用了,这样其他同事就和我们有相同的环境配置了

vagrant优化

如果一个box在使用的过程中又安装了其他软件怎么办?

对于新用户我们可以重新打包分发,对于老用户我们可以修改Vagrantfile文件

config.vm.provision "shell", inline: <<-SHELL
yum install -y apache2
SHELL

这样在下次执行vagrant up的时候会自动安装新的软件

如何以固定ip的形式访问虚拟机上的web服务器

这里我们可以通过设置私有网络ip的形式供自己访问,

config.vm.network "private_network",ip:"192.168.10.10"

这样我们就可以通过这个ip访问到我们的服务器了

vagrant常用命令

vagrant box list 查看目前已有的box

vagrant box add 新增加一个box

vagrant box remove

vagrant inti 初始化配置生成vagrantfile

vagrant up 启动虚拟机

vagrant ssh登录虚拟机

vagrant suspend 挂起虚拟机

vagrant reload 重启虚拟机

vagrant halt 关闭虚拟机

vagrant status 查看虚拟机

vagrant destory 删除虚拟机

设置vagrant默认以root用户身份登录

当通过vagrant up,以vagrant身份进入linux后,

sudo su root
vi /etc/ssh/sshd_config
找到PermitRootLogin设置为 yes
找到PasswordAuthentication设置为yes
保存后执行重启sshd
service sshd restart

重启该box后我们就可以用root身份登录了,需要填写密码默认是vagrant

如何利用Vagrant快速搭建相同配置的开发环境?的更多相关文章

  1. windows 10下sublime text3环境的搭建以及配置python开发环境

    1 - 安装Sublime Text 3 到官网下载对应的版本,如下: OS X (10.7 or later is required) Windows - also available as a p ...

  2. vagrant+docker搭建consul集群开发环境

    HashiCorp 公司推出的Consul是一款分布式高可用服务治理与服务配置的工具.关于其配置与使用可以参考这篇文章 consul 简介与配置说明. 一般,我们会在多台主机上安装并启动 consul ...

  3. 快速搭建 SpringCloud 微服务开发环境的脚手架

    本文适合有 SpringBoot 和 SpringCloud 基础知识的人群,跟着本文可使用和快速搭建 SpringCloud 项目. 本文作者:HelloGitHub-秦人 HelloGitHub ...

  4. Docker 快速搭建 MySQL 5.6 开发环境

    使用 Docker 快速搭建一个 MySQL 5.6 开发环境 步骤 获取镜像 docker pull mysql:5.6 启动容器,密码 123456,映射 3306 端口 docker run - ...

  5. 从零搭建和配置OSX开发环境

    对于每一名开发者来说,更换系统或者更换电脑的时候,都免不了花上不短的时间去折腾开 发环境的问题.我本人也是三番两次,深知这个过程的繁琐.所有,根据我自己以往的经验, 以及参考一下他人的意见,整理一下关 ...

  6. [转载]快速搭建Spring MVC 4开发环境

    (一)工作环境准备: JDK 1.7 Eclipse Kepler Apache Tomcat 8.0 (二)在Eclipse中新建Maven工程,在Archetype类型中,选择“maven-arc ...

  7. 快速搭建微信小程序开发环境

    1.工具软件: 注:本文介绍的工具软件已分享到百度云盘,直接下载并按照本文介绍安装即可. 开发工具 v0.7 百度云链接: https://pan.baidu.com/s/1jIQ7i8A密码: aq ...

  8. 快速搭建Spring Boot + Apache Shiro 环境

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Apache Shiro 介绍及概念 概念:Apache Shiro是一个强大且易用的Java安全框 ...

  9. 利用 TFLearn 快速搭建经典深度学习模型

      利用 TFLearn 快速搭建经典深度学习模型 使用 TensorFlow 一个最大的好处是可以用各种运算符(Ops)灵活构建计算图,同时可以支持自定义运算符(见本公众号早期文章<Tenso ...

随机推荐

  1. [Swift]LeetCode397. 整数替换 | Integer Replacement

    Given a positive integer n and you can do operations as follow: If n is even, replace n with n/2. If ...

  2. [Swift]LeetCode871. 最低加油次数 | Minimum Number of Refueling Stops

    A car travels from a starting position to a destination which is target miles east of the starting p ...

  3. [Abp 源码分析]六、工作单元的实现

    0.简介 在 Abp 框架内部实现了工作单元,在这里讲解一下,什么是工作单元? Unit Of Work(工作单元)模式用来维护一个由已经被业务事物修改(增加.删除或更新)的业务对象组成的列表.Uni ...

  4. “吃人”的那些Java名词:对象、引用、堆、栈

    记得中学的课本上,有一篇名为<狂人日记>课文:那时候根本理解不了鲁迅写这篇文章要表达的中心思想,只觉得满篇的“吃人”令人心情压抑:老师在讲台上慷慨激昂的讲,大多数的同学同我一样,在课本面前 ...

  5. 【JVM虚拟机】(4)---性能调优

    JVM性能调优 一.调优策略 对于GC的性能主要有2个方面的指标:吞吐量throughput(工作时间不算gc的时间占总的时间比)和暂停pause(gc发生时app对外显示的无法响应). 1.调优的目 ...

  6. 『战略游戏 最大利润 树形DP』

    通过两道简单的例题,我们来重新认识树形DP. 战略游戏(luoguP1026) Description Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题.他要 ...

  7. Dubbo(二) —— dubbo配置

      一.配置原则 JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口. XML 次之,如果在 XML 中有配置,则 dubbo.properties ...

  8. 在Ubuntu上搭建kindle gtk开发环境

    某个角度上说,kindle很类似android,同样的Linux内核,同样的Java用户层.不过kindle更注重简单.节能.稳定.Amazon一向认为,功能过多会分散人们阅读时候的注意力. Kind ...

  9. centos7下误执行chmod -R 777 /后的权限修复方法

    今天由于权限问题zz一般把/usr/bin和/usr/lib两个目录用chmod -R 777执行了一遍,结果各种问题出现,su root就报su:鉴定故障的错误.然后上网找教程很多都要求在root权 ...

  10. 构造方法、封装、关键字(this、static)和代码块的介绍

    1.构造方法 1.1 构造方法与成员方法的区别 构造方法分为无参构造和有参构造,其中有参构造方法和无参构造方法为方法的重载关系. 构造方法在初始化一个类的对象时进行调用,它没有返回值,方法名与类名相同 ...