沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践!
生活不会因为某个节点而变得与众不合,将来的荣幸,都是过往尽力的积攒。
vagrant 是我在本地 osx 体系下做测试情况时刻开端研究的,以前只是单一的用 vbox 装个本地虚机时并没有发觉用或者不消有什么差别,但跟着本地开端有一些特别需求的时刻,才发觉 vagrant 供给的功能照样很值得称赞的。
- $ vagrant up
- $ vagrant ssh web
- vagrant@web:~$
- $ vagrant ssh db
- vagrant@db:~$
provisioning
类似于开机启动,可以开机履行某个敕令,可以履行某个脚本都可以
比如我想在开机后主动安装某个包,同步下时光,那么如不雅是 vbox 的虚机可能你得连到虚机里,然后在/etc/rc.local下写上敕令等等,但在 Vagrantfile 里,可以直接以设备的情势表现,下面这段是设备里自带的一段,开机主动更新包,安装 Apache
- config.vm.provision "shell", inline: <<-SHELL
- apt-get update
- apt-get install -y apache2
- SHELL
所以只要把中心那部分换成本身的敕令就好,然则如不雅敕令太长,还有逻辑断定,最好是开机履行个脚本,那在设备文件里应当如许写
- config.vm.provision :shell, path: "<scriptname.sh>"
vagrant 创建集群
如不雅是 vbox 或者是 VMware 的话,模仿一?集群办法就是多建几个虚机情况,然后打通内网,无论是 clone 照样新定都还挺麻烦的,然则 vagrant 靠一个设备文件就可以完成,这里直接引用 go-best-practice 里的┞封段话
Vagrant支撑单机模仿多台机械,并且支撑一个设备文件Vagrntfile就可以跑分布式体系。这种多机械模式特别合适以下几种人:
留意这里的路径是以Vagrantfile地点的目次为根目次的,上述的写法,脚本就必须存放在和 Vagrantfile同级就可以
快速建立产品收集的多机械情况,例如web办事器、db办事器
建立一个分布式体系,进修他们是若何交互的
测试API和其他组件的通信
容灾模仿,收集断网、机械逝世机、连接超时等情况
如今我们来建立多台VM跑起來,並且让他们之间可以或许相通信,假设一台是应用办事器、一台是DB办事器,那么这个构造在Vagrant中异常简单,其实和单台的设备差不多,你只须要经由过程config.vm.define来定义不合的角色就可以了,如今我们打开设备文件进行如下设置:
- Vagrant.configure("2") do |config|
- config.vm.define :web do |web|
- web.vm.provider "virtualbox" do |v|
- v.customize ["modifyvm", :id, "--name", "web", "--memory", "512"]
- end
- web.vm.box = "base"
- web.vm.hostname = "web"
- web.vm.network :private_network, ip: "11.11.1.1"
- end
- config.vm.define :db do |db|
- db.vm.provider "virtualbox" do |v|
- v.customize ["modifyvm", :id, "--name"
推荐阅读
沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践! 比来有微博网友爆料称,某观光网站预订酒店办事有“杀熟欺生”的嫌疑:当碰到当机不断的新用户或花费>>>详细阅读
地址:http://www.17bianji.com/lsqh/40999.html
1/2 1