原文地址 Vagrant 可以通过一个 Vagrantfile 定义并控制多个客户机.这就是所谓的"multi-machine"多虚拟机环境. 这些机器通常可以协同工作,或者互相关联.下面是几个常见用例: 准确建模多服务器生产拓扑环境,例如分离 Web 和数据库服务器. 建模分布式系统,以及它们如何相互交互. 测试一个接口,比如一个 API 到一个服务组件. 灾难情况测试:机器宕机,网络分区,网络缓慢,环境不一致(inconsistent world views)等. 以前,通常是在一…
1 虚拟机和machine simulator的不同 虚拟机是让多个操作系统同时共用现有的硬件架构,它不会模拟新的硬件架构.qemu这样的模拟器是模拟新的硬件架构,这个架构和host不同.…
目前云计算平台常用的虚拟化技术有虚拟机(Virtual Machine)和容器(Container)两种.虚拟机已经是比较成熟的技术,容器技术作为下一代虚拟化技术,国内的各厂商应用还不广,但似乎其代表着未来的发展方向. 先来看一下虚拟机和容器的架构图: 左图是虚拟机 从下到上理解: 基础设施(Infrastructure).它可以是你的个人电脑,数据中心的服务器,或者是云主机. 主机操作系统(Host Operating System) 虚拟机管理系统(Hypervisor).利用Hypervi…
原文地址 虽然 Vagrant 提供了用于配置虚拟机的多个选项,但是有标准用法,好多知识点对这个 provisioner 是通用的. 配置 首先,Vagrantfile 中配置的每个 provisioner 都使用 config.vm.provision 方法调用.例如,使用 shell 配置程序: Vagrant.configure("2") do |config| # ... other configuration config.vm.provision "shell&q…
原文地址 Vagrantfile 配置文件中端口转发的网络标识符:forwarded_port,例如: config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" Vagrant 端口转发可以将对宿主机端口的访问数据转发到虚拟机中,支持 TCP 和 UDP. 例如:如果虚拟机中的 80 端口上运行着 web 服务,可以通过端口转发映射到宿主机的 8080 端口,在宿主…
前端测试,经常需要各种环境, 用“Virtual Box + OVA文件”安装虚拟机, 是简单高效的一种方法,可以安装各种window和IE的版本.下面以IE10 + Win7为例说明. 1) 下载和安装Virtual Boxhttps://www.virtualbox.org/wiki/Downloads Download VirtualBox ==> VirtualBox binaries ==> VirtualBox 5.1.14 platform packages. ==> Wi…
原文地址 Vagrant 可以在一个 Vagrantfile 中定义并控制多个虚拟机.这就是"multi-machine"环境. 这些机器可以协同工作或互相关联.multi-machine 的常见用例有: 准确建模多服务器生产拓扑,例如分离 Web 和数据库服务器. 建模分布式系统,以及它们如何相互交互. 测试接口,比如一个到服务组件的 API. 灾难情况测试:机器正在死亡,网络分区,网络速度慢,不一致(inconsistent world views)等. 注意,这只是生产环境的不准…
原文地址 Provisioner 命令:"file" 通过 file 配置程序可以上传宿主机的文件或目录到虚拟机中. 使用场景:将宿主机的 ~/.gitconfig 复制到虚拟机中的用户家目录,这样就不用每次都要为新的虚拟机执行 git config --global: Vagrant.configure("2") do |config| # ... other configuration config.vm.provision "file",…
原文地址 通过 Vagrant 中的 provisioner 配置程序,可以在使用 vagrant up 启动虚拟机时,在虚拟机上执行安装软件.更改配置等操作. box 通常是通用的,而每个项目总有自己的需求.当然也可以通过 vagrant ssh 进入虚拟机后手动安装软件.但是通过 Provisioning 机制可以自动化这个过程并使其可重复,完全不需交互. Provisioning 的执行节点 Provisioning 在 Vagrant 环境生命周期的特定节点执行: 第一次 vagrant…
原文地址 Provisioner 命令:"shell" 示例: node.vm.provision "shell" do |s| s.inline = <<-SHELL # 更改时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime timedatectl set-timezone Asia/Shanghai SHELL 通过 Vagrant Shell 配置程序可以在虚拟机中上传和执行脚本. She…