zoukankan      html  css  js  c++  java
  • 如何利用Vagrant快速搭建相同配置的开发环境?

    作为一名程序猿,我们常常会遇到需要搭建开发环境的问题,特别是在新入职的时候,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:vagrantCentOS.vagrantmachinesdefaultvirtualboxprivate_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

  • 相关阅读:
    com.panie 项目开发随笔_前后端框架考虑(2016.12.8)
    Jsoup 使用教程:数据抽取
    Jsoup 使用教程:输入
    项目中图片处理总结
    jsonp 跨域请求
    由Memcached升级到 Couchbase的 Java 客户端的过程记录(三)
    由Memcached升级到 Couchbase的 Java 客户端的过程记录(二)
    jquery eval解析JSON中的注意点介绍
    JS禁止WEB页面鼠标事件大全
    jQuery事件之鼠标事件
  • 原文地址:https://www.cnblogs.com/jesse131/p/9095189.html
Copyright © 2011-2022 走看看