当前栏目:产品中心

 一. 序言

在吾们开发程序时,行使的运走环境清淡都是本身的电脑,Windows、Mac或者Linux操作编制,在大无数时候能够很益的运走柔件。然而,许众当代行使都是分布式的,在生产环境中,由众个节点形成一个集群,每个节点安放在分别的机器上。这栽情况下,本地单机安放不及模拟生产环境中的集群环境,总不及为了模拟集群,特意往买几台主机来安放私有云,如许成本太高了。因此,吾认为行使虚拟机是性价比选择,而Vagrant + VitualBox的组相符是虚拟机中最方便的一栽。

二. 单机虚拟机搭建

1.下载和安置Vagrant+ VitualBox

Vagrant下载链接

https://www.vagrantup.com/downloads.html 

VitualBox下载链接

https://www.virtualbox.org/wiki/Downloads 

下载安置完善后,在终端运走命令 vagrant -v ,展现相通下面的挑示表明安置成功。

Vagrant 2.2.3 

2.安置Box

Box在Vagrant中的概念相等于操作编制,在行使Vagrant构建虚拟机之前,吾们必要为Vagrant增补编制包,在官方挑供的 Vagrant Cloud 网站下能够找到各栽版本的操作编制,以 Ubuntu 16.04 LTS 版本的操作编制为例,对答的就是名为 ubuntu/xenial64 的Box。

2.1 安置手段一

吾们运走下面的命令就能直接增补这个Box,运走命令后,Vagrant会从长途仓库下载对答的Box

~ vagrant box add ubuntu/xenial64 

2.2 安置手段二

固然上面的步骤望首来没什么题目,但在实际实走过程中, Box 的下载速度慢到不共戴天,能够必要几先天能下载完,因而这边必要换一栽安置手段。

最先,照样先运走下面的命令

~ vagrant box add ubuntu/xenial64 

运走后,终端上打印出相通下面的新闻

~ vagrant box add ubuntu/xenial64 /opt/vagrant/embedded/gems/2.2.3/gems/vagrant-2.2.3/lib/vagrant/util/which.rb:37: warning: Insecure world writable dir /Users/meetmax/test in PATH, mode 040777 ==> box: Loading metadata for box 'ubuntu/xenial64'     box: URL: https://vagrantcloud.com/ubuntu/xenial64 ==> box: Adding box 'ubuntu/xenial64' (v20190724.1.0) for provider: virtualbox     box: Downloading: https://vagrantcloud.com/ubuntu/boxes/xenial64/versions/20190724.1.0/providers/virtualbox.box 

接着, Ctrl + C 休止命令, Downloading 后面的就是下载链接,复制链接后,可直接粘贴到涉猎器或者迅雷下载,实际测试中速度会快许众,不出意表几分钟就能够下载完。

下载完善后运走下面命令,增补本地Box

~ vagrant box add /your/path/virtualbox.box --name YourBoxName 

其中把 virtualbox.box 路径改成本身的本地路径, --name 后面是Box的名字,可本身命名,平常情况下能够和官方保持相反,即 ubuntu/xenial64 。

2.3 验证

安置完善后,运走下面命令验证安置是否成功

~ vagrant box list 

终端会打印相通下面的新闻

laravel/homestead (virtualbox, 5.1.0) ubuntu/xenial64   (virtualbox, 0) 

查望是否有你刚刚安置的Box。

3. 初首化Vagrant

Box安置完善后,运走下面命令初首化Vagrant

~ mkdir vagrant_test ~ cd vagrant_test ~ vagrant init ubuntu/xenial64 

运走完善后, vagrant_test 现在录下会展现一个 Vagrantfile 文件,终端打印相通下面的新闻。

A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. 

Vagrantfile 文件中是虚拟机有关的配相新闻,这边吾们先行使默认配置,一时不管它。

4.启动虚拟机 & SSH登录

4.1 构建并启动虚拟机

初首化完善后,在 vagrant_test 现在录下运走下面命令构建并运走虚拟机

~ vagrant up 

在展现相通下面新闻后表明启动成功

==> default: Machine booted and ready! ==> default: Checking for guest additions in VM...     default: The guest additions on this VM do not match the installed version of     default: VirtualBox! In most cases this is fine, but in rare cases it can     default: prevent things such as shared folders from working properly. If you see     default: shared folder errors, please make sure the guest additions within the     default: virtual machine match the version of VirtualBox you have installed on     default: your host and reload your VM.     default:     default: Guest Additions Version: 5.1.38     default: VirtualBox Version: 6.0 ==> default: Mounting shared folders...     default: /vagrant => /Users/meetmax/vagrant/vagrant_test 

4.2 SSH登录

在Vagrant行使SSH特意浅易,在 vagrant_test 现在录下运走下面命令

~ vagrant ssh 

成功后就进入了虚拟机

三. 众借点虚拟集群搭建

上面行使的是Vagrant的单机模式,Vagrant也声援众机模式,即单个配置启动众个虚拟机,它能够很方便的模拟服务器集群环境。集群和单机模式的区别仅在于Vagrantfile配置文件分别,在Vagrantfile中吾们议定循环来创建众个虚拟机。

1. 初首化Vagrant

运走下面命令,初首化集群配置文件

~ mkdir vagrant_cluster ~ cd vagrant_cluster ~ vagrant init ubuntu/xenial64 

2. 修改 Vagrantfile

在搭建虚拟机集群时,吾们必要对Vagrantfile做响答修改,配置文件如下。

Vagrant.configure("2") do |config|    (1..4).each do |i|              #定义节点变量       config.vm.define "node#{i}" do |node|             # box配置       node.vm.box = "ubuntu/xenial64"        # 竖立虚拟机的主机名       node.vm.hostname = "node#{i}"        # 竖立虚拟机的IP       node.vm.network "private_network", ip: "192.168.60.#{10+i}"        # 竖立主机与虚拟机的共享现在录       node.vm.synced_folder "/Users/meetmax", "/home/vagrant/code"       # VirtaulBox有关配置       node.vm.provider "virtualbox" do |v|            # 竖立虚拟机的名称           v.name = "node#{i}"            # 竖立虚拟机的内存大幼           v.memory = 2048            # 竖立虚拟机的CPU个数           v.cpus = 1       end   end end end 

详细虚拟机的配置请参考文件中的注解,和单虚拟机创建分别的地方是,集群创建议定 (1..4).each 循环创建了4个虚拟机节点。

3. 构建并启动虚拟机集群

启动集群命令和通例命令相通,运走下面的命令,会启动一切虚拟机节点

~ vagrant up 

启动单个节点,可运走下面命令

~ vagrant up node1 

其中, node1 为节点名称。启动众个虚拟机

~ vagrant up node1 node2 

3.SSH登录

登录虚拟机单个节点

~ vagrant ssh node1 

四. 常用虚拟机管理命令

启动虚拟机:vagrant up 登录虚拟机:vagrant ssh 重启虚拟机:vagrant reload 关闭虚拟机:vagrant halt 烧毁虚拟机:vagrant destroy

总结

在资源有限的情况下,众节点虚拟机集群能够很益的协助吾们模拟分布式环境,在虚拟机中进走各栽测试,即使编制损坏了也很容易恢复,每个虚拟机节点都是阻隔的,异国什么义务。以上期待对你有协助!

【编辑保举】

和重复搭建开发环境说 Bye Bye 之Vagrant如何在AWS中行使Lightsail来创建虚拟机?想要彻底搞懂JVM虚拟机,望了这篇就够了KVM虚拟机不及访问网关题目排查虚拟化简史,理解Docker,虚拟机原理
浏览:

友情链接

Powered by 彩票赔率9.99网址-彩票网站赔率9.99 @2018 RSS地图 HTML地图