阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

利用Vagrant搭建多平台环境

117次阅读
没有评论

共计 3010 个字符,预计需要花费 8 分钟才能阅读完成。

title: 利用 Vagrant 搭建多平台环境

[TOC]

vagrant 是一个创建和分发虚拟化开发环境的工具,使用 ruby 编写,本身并不包含虚拟机管理软件,因此我们需要配合 Vagrant 安装一个虚拟机软件。Vagrant 支持 VMware, Virtual Box, Hyper-V 等多种虚拟机软件,我选择的是 Virtual Box,免费,跨平台。

为什么有了虚拟机软件还需要使用 Vagrant?
因为简单的虚拟机并不能满足我们的需要,我们希望一个新的环境,开机就帮我们解决了一切,包括特定版本的操作系统、定制软件环境安装、系统设置(时区、输入法等)等等。使用 Vagrant 可以方便的帮助我们搭建系统,以及之后自动的管理端口映射 / 软件包安装等等问题。同时,更重要的,Vagrant 还可以方便的设定同步文件夹,让我们在宿主机内对程序的修改,可以方便的同步到客户机,在调试程序时,这是一个非常优秀的特质。除此之外,还有一些其他的特性,比如自动化的应用部署,需要我们自行去挖掘。

安装

安装 virtualbox

安装 vagrant

从官方网站下载安装即可。

初始化

创建工作目录

该工作目录用于存储虚拟机配置以及共享目录本地目录

$ mkdir vagrant
$ cd vagrant

查找基础模板

vagrant 用户在网上共享了基于各种操作系统的精简系统的模版(base box),从以下两个网站中可以查找。

  • https://atlas.hashicorp.com/boxes/search
  • http://www.vagrantbox.es/

初始化一个虚拟机

例如,我们选定了 https://atlas.hashicorp.com/boxes/search 上的 box-cutter/Ubuntu1504-desktop,box 文件将存储于%userprofile%/.vagrant.d/,新的虚拟机存放于 Virtualbox 的虚拟机目录。

$ vagrant init box-cutter/ubuntu1504-desktop

该命令将在当前目录下创建一个 Vagrantfile 的配置文件,该文件用以对虚拟机进行配置。可以在其中直接加载配置脚本,完成例如预安装软件以及各种设置功能。

  • 定义虚拟机名称

    config.vm.provider "virtualbox" do |v|
        v.name = "dev-ubuntu1504-desktop"
    end
  • 定义启动执行脚本

注意 provision.sh 不是绝对路径,则相对于 Vagrantfile 所在的目录

config.vm.provision "shell", path: "provision.sh"

可在其中实现的功能包括:

  1. 系统更新:sudo apt-get update
  2. 安装必要的软件:sudo apt-get install git。。。

启动虚拟机

$ vagrant up

系统启动之后,可以进入图形界面,可以同通过 SSH 登陆

  • 默认共享目录:.<–>/vargant
  • 查看 SSH 登陆信息:$ vagrant ssh-config
  • 默认 SSH:vagrant: vagrant@127.0.0.1:2222

定制系统

  • 根据需要定制系统

更新系统、设定时区、安装输入法和软件等等

其他

打包系统,建立新的模板:$ vagrant package,即可在当前目录生成一个 package.box 的 box,你可以把它保存到其他位置作为备份,或者分发给其他人作为模板。

模版使用步骤:

  1. 添加该模板:$ vagrant box add dev ./package.box
  2. 查看:$ vagrant box list
  3. 创建自己的目录并启动虚拟机:
$ mkdir dev; 
$ cd dev; 
$ vagrant init dev; 
$ vagrant up

常用命令:

$ vagrant init  # 初始化
$ vagrant up  # 启动虚拟机
$ vagrant halt  # 关闭虚拟机
$ vagrant reload  # 重启虚拟机
$ vagrant ssh  # SSH 至虚拟机
$ vagrant status  # 查看虚拟机运行状态
$ vagrant destroy  # 销毁当前虚拟机 

可以通过 $ vagrant help 查看

高级应用

  • 多个虚拟机

vagrant 支持一个 Vagrantfile 中定义多个虚拟机,通常用于创建一个集群,示例配置如下:

Vagrant.configure("2") do |config|
  # 这个配置项会被后面两个虚拟机继承
  # 注意 provision.sh 不是绝对路径,则相对于 Vagrantfile 所在的目录
  config.vm.provision "shell", path: "provision.sh"

  config.vm.define "web" do |web| 
    web.vm.box = "apache"
    web.vm.network "private_network", ip: "192.168.50.3"
  end

  config.vm.define "db" do |db|
    db.vm.box = "mysql"
    db.vm.network "private_network", ip: "192.168.50.4"
  end
end

附录

  • 更改 VirtualBox 虚拟机映像文件的位置

打开 VirtualBox 程序,点击管理 / 全局设定菜单项 (Ctrl+G), 将常规栏里的默认虚拟电脑位置(M) 改为其他磁盘下的路径
将原路径 C:\Users\user_name\.VirtualBox\VirtualBox VMs下的文件移动到新路径下。
重新启动 VirtualBox 程序,在虚拟机列表里,以前建立的虚拟机虽然都还在,但已经不可用了,将他们全部删除。
双击打开新路径各个文件夹里的 vbox 文件,将建立的虚拟机重新导入。
VirtualBox 虚拟机映像文件是 vagrant 最多的一块, 上述方法应该能显著减少 vagrant 对系统盘的空间占用。只是如果添加的 vagrant box 数量比较多,其占用的空间也是很可观的,可以用下面的方法将其移出系统盘。

  • 更改 vagrant 配置文件的位置

C:\Users\user_name\.vagrant.d 移动到新的位置
新建环境变量 VAGRANT_HOME,并指向新路径

如何使用 vagrant 在虚拟机安装 Hadoop 集群 http://www.linuxidc.com/Linux/2013-04/82750.htm

Vagrant 中高效的 Puppet 模块管理 http://www.linuxidc.com/Linux/2014-05/101873.htm

使用 Vagrant 和 Fabric 用于集成测试 http://www.linuxidc.com/Linux/2014-07/104113.htm

使用 Vagrant 搭建开发环境 http://www.linuxidc.com/Linux/2014-07/104116.htm

Windows 下配置 Vagrant 环境 http://www.linuxidc.com/Linux/2014-07/104115.htm

使用 Vagrant 搭建开发环境 http://www.linuxidc.com/Linux/2014-07/104116.htm

通过 Vagrant 搭建虚拟机环境 http://www.linuxidc.com/Linux/2015-08/121985.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-09/123518.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3010字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中