在VirtualBox上使用Bosh部署Zookeeper集群

安装 VirtualBox

$ VBoxManage --version
5.1.22r115126

安装Bosh

$ wget -c https://s3.amazonaws.com/bosh-cli-artifacts/bosh-cli-2.0.48-linux-amd64
$ chmod +x bosh-cli-*
$ sudo mv bosh-cli-* /usr/local/bin/bosh

安装完成后运行下面命令确认安装成功

$ bosh -v
version 2.0.48-e94aeeb-2018-01-09T23:08:07Z

Succeeded
$ bosh environments
URL  Alias

0 environments

Succeeded

安装依赖库

$ sudo yum install gcc gcc-c++ ruby ruby-devel mysql-devel postgresql-devel postgresql-libs sqlite-devel libxslt-devel libxml2-devel patch openssl
$ gem install yajl-ruby

安装后检查安装是否成功

$ ruby -v
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

创建Director

$ mkdir vbox
$ cd vbox
$ git clone https://github.com/cloudfoundry/bosh-deployment

使用 “bosh create-env” 创建Director

$ bosh create-env bosh-deployment/bosh.yml \
  --state state.json \
  --vars-store ./creds.yml \
  -o bosh-deployment/virtualbox/cpi.yml \
  -o bosh-deployment/virtualbox/outbound-network.yml \
  -o bosh-deployment/bosh-lite.yml \
  -o bosh-deployment/jumpbox-user.yml \
  -v director_name=vbox \
  -v internal_ip=192.168.50.6 \
  -v internal_gw=192.168.50.1 \
  -v internal_cidr=192.168.50.0/24 \
  -v network_name=vboxnet0 \
  -v outbound_network_name=NatNetwork

...

如果要删除上面创建的Director,可以运行下面的命令

$ bosh delete-env bosh-deployment/bosh.yml \
  --state state.json \
  --vars-store ./creds.yml \
  -o bosh-deployment/virtualbox/cpi.yml \
  -o bosh-deployment/virtualbox/outbound-network.yml \
  -o bosh-deployment/bosh-lite.yml \
  -o bosh-deployment/jumpbox-user.yml \
  -v director_name=vbox \
  -v internal_ip=192.168.50.6 \
  -v internal_gw=192.168.50.1 \
  -v internal_cidr=192.168.50.0/24 \
  -v network_name=vboxnet0 \
  -v outbound_network_name=NatNetwork

...

给上面创建的Director设置别名

$ bosh alias-env vbox -e 192.168.50.6 --ca-cert <(bosh int ./creds.yml --path /director_ssl/ca)
Using environment '192.168.50.6' as anonymous user

Name      vbox  
UUID      91478351-44a7-4bbb-b7b3-fd55ed1c19cd  
Version   264.7.0 (00000000)  
CPI       warden_cpi  
Features  compiled_package_cache: disabled  
          config_server: disabled  
          dns: disabled  
          snapshots: disabled  
User      (not logged in)  

Succeeded

设置用户并登录

$ export BOSH_CLIENT=admin
$ export BOSH_CLIENT_SECRET=`bosh int ./creds.yml --path /admin_password`
$ bosh -e vbox env
Using environment '192.168.50.6' as client 'admin'

Name      vbox  
UUID      91478351-44a7-4bbb-b7b3-fd55ed1c19cd  
Version   264.7.0 (00000000)  
CPI       warden_cpi  
Features  compiled_package_cache: disabled  
          config_server: disabled  
          dns: disabled  
          snapshots: disabled  
User      admin  

Succeeded

为了后面我们可以使用ssh登录虚拟机,我们还需要使用下面的命令建立路由

$ sudo ip route add   10.244.0.0/16 via 192.168.50.6
或
$ sudo route add -net 10.244.0.0/16 gw  192.168.50.6

部署Zookeeper

首先,更新一下云配置文件

$ bosh -e vbox update-cloud-config bosh-deployment/warden/cloud-config.yml
Using environment '192.168.50.6' as client 'admin'

+ azs:
+ - name: z1
+ - name: z2
+ - name: z3
  
+ vm_types:
+ - name: default
  
+ compilation:
+   az: z1
+   network: default
+   reuse_compilation_vms: true
+   vm_type: default
+   workers: 5
  
+ networks:
+ - name: default
+   subnets:
+   - azs:
+     - z1
+     - z2
+     - z3
+     dns:
+     - 8.8.8.8
+     gateway: 10.244.0.1
+     range: 10.244.0.0/24
+     reserved: []
+     static:
+     - 10.244.0.34
+   type: manual
  
+ disk_types:
+ - disk_size: 1024
+   name: default

Continue? [yN]: y

Succeeded

更新虚拟机模板

首先使用 “bosh -e vbox stemcells” 查看一下,如下,可以看到目前没有任何虚拟机模板。

$ bosh -e vbox stemcells
Using environment '192.168.50.6' as client 'admin'

Name  Version  OS  CPI  CID  

(*) Currently deployed

0 stemcells

Succeeded

更新虚拟机模板

$ bosh -e vbox upload-stemcell https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-trusty-go_agent?v=3468.17 --sha1 1dad6d85d6e132810439daba7ca05694cec208ab

或者

$ wget -c https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-trusty-go_agent?v=3468.17
$ bosh -e vbox us bosh-warden-boshlite-ubuntu-trusty-go_agent\?v\=3468.17

上面的命令会比较慢,更新再次查询虚拟机模板,可以看到已经下载了新的模板。

$ bosh -e vbox stemcells
Using environment '192.168.50.6' as client 'admin'

Name                                         Version  OS             CPI  CID  
bosh-warden-boshlite-ubuntu-trusty-go_agent  3468.17  ubuntu-trusty  -    b1e5983d-ab18-4e36-6877-1ebe5e8582d6  

(*) Currently deployed

1 stemcells

Succeeded

部署Zookeeper

$ wget -c https://raw.githubusercontent.com/cppforlife/zookeeper-release/master/manifests/zookeeper.yml
$ bosh -e vbox -d zookeeper deploy zookeeper.yml
...

运行上面部署命令后可以使用下面命令来查看服务状态

$ bosh -e vbox -d zookeeper instances
Using environment '192.168.50.6' as client 'admin'

Task 23. Done

Deployment 'zookeeper'

Instance                                          Process State  AZ  IPs  
smoke-tests/bb0b0f87-5a59-489f-b3ca-1bdfd5a8167f  -              z1  10.244.0.7  
zookeeper/40dc99e8-17f0-4c8d-bda1-670cf24490d5    running        z3  10.244.0.6  
zookeeper/48cce3c4-b4c2-46bc-947d-da1b3f255561    running        z1  10.244.0.2  
zookeeper/8926bddb-2986-44a6-b8e6-337fa2ac2c4f    running        z2  10.244.0.4  
zookeeper/970b4886-ca4e-4f91-9a27-6d93e151ae0c    running        z1  10.244.0.3  
zookeeper/eea5d292-1473-4849-956c-25e196de8e0a    running        z2  10.244.0.5  

6 instances

Succeeded

查看虚拟机信息

$ bosh -e vbox vms
Using environment '192.168.50.6' as client 'admin'

Task 24. Done

Deployment 'zookeeper'

Instance                                        Process State  AZ  IPs         VM CID                                VM Type  Active  
zookeeper/40dc99e8-17f0-4c8d-bda1-670cf24490d5  running        z3  10.244.0.6  dfe4e8f6-376c-4046-4929-58c9ae16a1c0  default  false  
zookeeper/48cce3c4-b4c2-46bc-947d-da1b3f255561  running        z1  10.244.0.2  3ab39e75-9c65-415f-67b1-fb66982750b4  default  false  
zookeeper/8926bddb-2986-44a6-b8e6-337fa2ac2c4f  running        z2  10.244.0.4  46f42f6f-2741-4c02-5330-fdf2e713e2ae  default  false  
zookeeper/970b4886-ca4e-4f91-9a27-6d93e151ae0c  running        z1  10.244.0.3  c211408e-50c5-4daa-4aad-192d037489f2  default  false  
zookeeper/eea5d292-1473-4849-956c-25e196de8e0a  running        z2  10.244.0.5  5339825b-ee47-42dd-402e-4b9da39e1b26  default  false  

5 vms

Succeeded

如果要删除 Zookeeper Development,执行下面命令

$ bosh -e vbox -d zookeeper delete-deployment

SSH访问虚拟机

如果我们想使用ssh登录虚拟机,可以运行下面命令

$ bosh -e vbox -d zookeeper ssh <vm>

比如:

$ bosh -e vbox -d zookeeper ssh zookeeper/40dc99e8-17f0-4c8d-bda1-670cf24490d5

测试Zookeeper

$ bosh -e vbox -d zookeeper run-errand smoke-tests
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容