如何利用Vagrant快速搭建相同配置的开发环境?

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

前期准备

在搭建以前咱们将用到如下软件:html

  • vagrant这里咱们选用1.8.6的版本,可在这里下载对应平台下的安装包
  • virtualBox这里我使用virtualBox虚拟机,固然也能够使用其余虚拟机,
  • xshell5,window用户须要安装xshell5用来登陆linux系统环境

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

初始化

在xshell中执行mysql

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"linux

这里为何将base改成centos/7?
我这里打算用linux的centos7发行版,vagrant为咱们提供了不少的box,咱们能够在这里查询到https://app.vagrantup.com/boxes/search,选择centos7,就能够看到它推荐咱们将config.vm.box = "centos/7",同时选好咱们使用的版本,这里咱们选择用1804.02web

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的登陆界面
sql

至此mac用户能够直接执行vagrant ssh
window用户能够根据提供的address username port新建ssh链接
输入用户名后,密钥咱们点击浏览,选择文件D:\vagrant\CentOS.vagrant\machines\default\virtualbox\private_key,这是刚生成的密钥

至此咱们已经登陆进了centos系统了。shell

进入系统后咱们就能够安装配置咱们的环境了,具体的PHP开发环境可参LNMP + Apache 架构配置.
可开发环境安装好后如何让他人和我有相同的环境配置呢?apache

box的打包与分发

如今开发环境安装好后咱们须要将咱们的box打包,centos

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

相关文章
相关标签/搜索