目录(?)[-]

  1. 上传Bosh Stemcell到Micro Bosh中
  2. 下载Bosh Release代码并打包
  3. 上传Bosh Release包到Micro Bosh中
  4. 确认已经上传的stemcell和release
  5. 创建部署Bosh的Manifest文件
  6. 部署Bosh
  7. 验证部署是否成功

版本说明:

CloudFoundry:V2版本-v149+(本文后续章节中的Manifest适用于149+版本的CF Release)

OpenStack:Grizzly版本+nova-network

CloudFoundry部署交流QQ群:176302388

本文介绍如何使用Micro Bosh来部署Bosh,部署需要创建8个虚拟机来部署8个Bosh组件,所以,至少得准备好8个Fixed IP,后边使用Bosh的时候需要访问Director组件及配置DNS,所以准备至少2个Floating IP,本文中为(10.68.19.131和10.68.19.132),Bosh组件的详细介绍可以参看下边连接。

BOSH组件介绍:http://docs.cloudfoundry.com/docs/running/bosh/components/

下面是部署步骤:

1、上传Bosh Stemcell到Micro Bosh中

[plain] view plaincopy
  1. root@bosh-cli:~/bosh-workspace/stemcells# bosh upload stemcell bosh-stemcell-latest-openstack-kvm-ubuntu.tgz
  2. Verifying stemcell...
  3. File exists and readable                                     OK
  4. Using cached manifest...
  5. Stemcell properties                                          OK
  6. Stemcell info
  7. -------------
  8. Name:    bosh-openstack-kvm-ubuntu
  9. Version: 1478
  10. Checking if stemcell already exists...
  11. No
  12. Uploading stemcell...
  13. latest-bosh-s: 100% |ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo| 251.3MB  11.3MB/s Time: 00:00:22
  14. Director task 1
  15. Update stemcell
  16. extracting stemcell archive (00:00:06)
  17. verifying stemcell manifest (00:00:00)
  18. checking if this stemcell already exists (00:00:00)
  19. uploading stemcell bosh-stemcell/776 to the cloud (00:01:53)
  20. save stemcell bosh-stemcell/776 (f207bfcd-f0cb-4ea2-b753-022e6234ebfa) (00:00:00)
  21. Done                    5/5 00:01:59
  22. Task 1 done
  23. Started         2013-12-16 09:51:59 UTC
  24. Finished        2013-12-16 09:53:58 UTC
  25. Duration        00:01:59
  26. Stemcell uploaded and created

2、下载Bosh Release代码并打包

[plain] view plaincopy
  1. root@bosh-cli:~# cd ~/bosh-workspace
  2. root@bosh-cli:~# git clone git://github.com/cloudfoundry/bosh.git

耗费时间较长,请耐心等待。

[plain] view plaincopy
  1. root@bosh-cli:~# cd ~/bosh-workspace/bosh
  2. root@bosh-cli:~# apt-get install libxslt-dev libxml2-dev libmysql-ruby libmysqlclient-dev libpq-dev
  3. root@bosh-cli:~# bundle install --local
  4. root@bosh-cli:~# bundle exec rake release:create_dev_release

可以先修改~/bosh-workspace/bosh/Gemfile的source为淘宝源:

[plain] view plaincopy
  1. source 'http://ruby.taobao.org'

打包结束得到以下输出:

[plain] view plaincopy
  1. bosh create release --force
  2. Syncing blobs...
  3. Building DEV release
  4. ---------------------------------
  5. ....
  6. Release version: 13.1-dev
  7. Release manifest: /root/bosh-workspace/bosh/release/dev_releases/bosh-13.1-dev.yml

3、上传Bosh Release包到Micro Bosh中

[plain] view plaincopy
  1. root@bosh-cli:~/bosh-workspace# bosh upload release ~/bosh-workspace/bosh/release/dev_releases/bosh-13.1-dev.yml

成功后得到以下输出:

[plain] view plaincopy
  1. ....
  2. Creating new jobs
  3. blobstore/3.1-dev (00:00:00)
  4. powerdns/3.1-dev (00:00:00)
  5. redis/3 (00:00:00)
  6. nats/5 (00:00:00)
  7. postgres/4.1-dev (00:00:00)
  8. director/11.2-dev (00:00:00)
  9. health_monitor/5.1-dev (00:00:00)
  10. registry/0.1-dev (00:00:00)
  11. Done                    8/8 00:00:00
  12. Release has been created
  13. bosh/13.1-dev (00:00:00)
  14. Done                    1/1 00:00:00
  15. Task 2 done
  16. Started         2013-12-16 10:06:26 UTC
  17. Finished        2013-12-16 10:06:46 UTC
  18. Duration        00:00:20
  19. Release uploaded

4、确认已经上传的stemcell和release

[plain] view plaincopy
  1. root@bosh-cli:~# bosh stemcells
  2. +---------------------------+---------+--------------------------------------+
  3. | Name                      | Version | CID                                  |
  4. +---------------------------+---------+--------------------------------------+
  5. | bosh-openstack-kvm-ubuntu | 1478    | e64c6da5-f2ab-48f2-b03d-79c29d1acc43 |
  6. +---------------------------+---------+--------------------------------------+
  7. Stemcells total: 1
  8. root@bosh-cli:~# bosh releases
  9. +------+-----------+-------------+
  10. | Name | Versions  | Commit Hash |
  11. +------+-----------+-------------+
  12. | bosh | 13.1-dev* | a8e43f41+   |
  13. +------+-----------+-------------+
  14. (*) Currently deployed
  15. (+) Uncommitted changes
  16. Releases total: 1

5、创建部署Bosh的Manifest文件

创建目录

[plain] view plaincopy
  1. root@bosh-cli:~# mkdir -p ~/bosh-workspace/deployments/bosh-openstack
  2. root@bosh-cli:~# cd ~/bosh-workspace/deployments/bosh-openstack

复制模板文件

[plain] view plaincopy
  1. root@bosh-cli:~# cp ~/bosh-workspace/bosh/release/examples/bosh-openstack-dynamic.yml bosh-openstack.yml

如果OpenStack中采用的是quantum网络组件,则使用下边的模板文件

[plain] view plaincopy
  1. root@bosh-cli:~# cp ~/bosh-workspace/bosh/release/examples/bosh-openstack-manual.yml bosh-openstack.yml

本次安装中使用nova-network网络组件,所以采用bosh-openstack-dynamic.yml,修改其中标记有# CHANGE 的配置项,下边是本环境中的配置,大家可参考:

[plain] view plaincopy
  1. ---
  2. name: bosh-openstack
  3. director_uuid: 5d8c682c-290a-4194-bfc6-60248567ceab # CHANGE
  4. release:
  5. name: bosh
  6. version: latest
  7. compilation:
  8. workers: 3
  9. network: default
  10. reuse_compilation_vms: true
  11. cloud_properties:
  12. instance_type: v1.compile # CHANGE
  13. update:
  14. canaries: 1
  15. canary_watch_time: 3000-120000
  16. update_watch_time: 3000-120000
  17. max_in_flight: 4
  18. max_errors: 1
  19. networks:
  20. - name: floating
  21. type: vip
  22. cloud_properties: {}
  23. - name: default
  24. type: dynamic
  25. cloud_properties: {}
  26. resource_pools:
  27. - name: common
  28. network: default
  29. size: 8
  30. stemcell:
  31. name: bosh-openstack-kvm-ubuntu
  32. version: latest
  33. cloud_properties:
  34. instance_type: v1.micro # CHANGE
  35. jobs:
  36. - name: nats
  37. template: nats
  38. instances: 1
  39. resource_pool: common
  40. networks:
  41. - name: default
  42. default: [dns, gateway]
  43. - name: redis
  44. template: redis
  45. instances: 1
  46. resource_pool: common
  47. networks:
  48. - name: default
  49. default: [dns, gateway]
  50. - name: postgres
  51. template: postgres
  52. instances: 1
  53. resource_pool: common
  54. persistent_disk: 16384
  55. networks:
  56. - name: default
  57. default: [dns, gateway]
  58. - name: powerdns
  59. template: powerdns
  60. instances: 1
  61. resource_pool: common
  62. networks:
  63. - name: default
  64. default: [dns, gateway]
  65. - name: floating
  66. static_ips:
  67. - 10.68.19.131 # CHANGE
  68. - name: blobstore
  69. template: blobstore
  70. instances: 1
  71. resource_pool: common
  72. networks:
  73. - name: default
  74. default: [dns, gateway]
  75. - name: director
  76. template: director
  77. instances: 1
  78. resource_pool: common
  79. persistent_disk: 16384
  80. networks:
  81. - name: default
  82. default: [dns, gateway]
  83. - name: floating
  84. static_ips:
  85. - 10.68.19.132 # CHANGE
  86. - name: registry
  87. template: registry
  88. instances: 1
  89. resource_pool: common
  90. networks:
  91. - name: default
  92. default: [dns, gateway]
  93. - name: health_monitor
  94. template: health_monitor
  95. instances: 1
  96. resource_pool: common
  97. networks:
  98. - name: default
  99. default: [dns, gateway]
  100. properties:
  101. nats:
  102. address: 0.nats.default.bosh-openstack.microbosh
  103. user: nats
  104. password: nats
  105. redis:
  106. address: 0.redis.default.bosh-openstack.microbosh
  107. password: redis
  108. postgres: &bosh_db
  109. host: 0.postgres.default.bosh-openstack.microbosh
  110. user: postgres
  111. password: postgres
  112. database: bosh
  113. dns:
  114. address: 10.68.19.131 # CHANGE
  115. db: *bosh_db
  116. recursor: 10.68.19.130 # CHANGE
  117. blobstore:
  118. address: 0.blobstore.default.bosh-openstack.microbosh
  119. agent:
  120. user: agent
  121. password: agent
  122. director:
  123. user: director
  124. password: director
  125. director:
  126. name: bosh
  127. address: 0.director.default.bosh-openstack.microbosh
  128. db: *bosh_db
  129. registry:
  130. address: 0.registry.default.bosh-openstack.microbosh
  131. db: *bosh_db
  132. http:
  133. user: registry
  134. password: registry
  135. hm:
  136. http:
  137. user: hm
  138. password: hm
  139. director_account:
  140. user: admin
  141. password: admin
  142. resurrector_enabled: true
  143. ntp:
  144. - 0.north-america.pool.ntp.org
  145. - 1.north-america.pool.ntp.org
  146. openstack:
  147. auth_url: http://10.68.19.61:5000/v2.0 # CHANGE
  148. username: VF # CHANGE
  149. api_key: 1 # CHANGE
  150. tenant: VF_CF # CHANGE
  151. region: myregion # CHANGE
  152. default_security_groups: ["default"] # CHANGE
  153. default_key_name: vkey # CHANGE

注意:director_uuid是Micro Bosh的Director的UUID,可以使用bosh status查看并复制到Manifest文件中。

6、部署Bosh

设置Bosh的部署文件

[plain] view plaincopy
  1. root@bosh-cli:~/bosh-workspace/deployments# bosh deployment ~/bosh-workspace/deployments/bosh-openstack/bosh-openstack.yml
  2. Deployment set to `/root/bosh-workspace/deployments/bosh-openstack/bosh-openstack.yml'

执行部署命令

[plain] view plaincopy
  1. root@bosh-cli:~/bosh-workspace/deployments# bosh deploy

部署时可能会遇到错误RateLimit报错,报错内容如下:

[plain] view plaincopy
  1. E, [2013-12-15T06:13:32.599434 #6477] [task:3] ERROR -- : OpenStack API Request Entity Too Large error. Check task debug log for details.
  2. /var/vcap/packages/director/gem_home/gems/bosh_openstack_cpi-1.5.0.pre.1478/lib/cloud/openstack/helpers.rb:20:in `cloud_error'
  3. /var/vcap/packages/director/gem_home/gems/bosh_openstack_cpi-1.5.0.pre.1478/lib/cloud/openstack/helpers.rb:39:in `rescue in with_openstack'
  4. /var/vcap/packages/director/gem_home/gems/bosh_openstack_cpi-1.5.0.pre.1478/lib/cloud/openstack/helpers.rb:25:in `with_openstack'
  5. /var/vcap/packages/director/gem_home/gems/bosh_openstack_cpi-1.5.0.pre.1478/lib/cloud/openstack/cloud.rb:512:in `block in set_vm_metadata'
  6. /var/vcap/packages/director/gem_home/gems/bosh_common-1.5.0.pre.1478/lib/common/thread_formatter.rb:46:in `with_thread_name'
  7. /var/vcap/packages/director/gem_home/gems/bosh_openstack_cpi-1.5.0.pre.1478/lib/cloud/openstack/cloud.rb:511:in `set_vm_metadata'
  8. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/metadata_helper.rb:14:in `update_vm_metadata'
  9. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/package_compiler.rb:225:in `block (2 levels) in compile_package'
  10. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/package_compiler.rb:290:in `prepare_vm'
  11. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/package_compiler.rb:224:in `block in compile_package'
  12. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/lock_helper.rb:89:in `block in with_compile_lock'
  13. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/lock.rb:58:in `lock'
  14. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/lock_helper.rb:88:in `with_compile_lock'
  15. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/package_compiler.rb:217:in `compile_package'
  16. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/package_compiler.rb:205:in `block (2 levels) in process_task'
  17. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/event_log.rb:58:in `track'
  18. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/package_compiler.rb:203:in `block in process_task'
  19. /var/vcap/packages/director/gem_home/gems/bosh_common-1.5.0.pre.1478/lib/common/thread_formatter.rb:46:in `with_thread_name'
  20. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/package_compiler.rb:199:in `process_task'
  21. /var/vcap/packages/director/gem_home/gems/director-1.5.0.pre.1478/lib/director/package_compiler.rb:174:in `block (4 levels) in compile_packages'
  22. /var/vcap/packages/director/gem_home/gems/bosh_common-1.5.0.pre.1478/lib/common/thread_pool.rb:83:in `call'
  23. /var/vcap/packages/director/gem_home/gems/bosh_common-1.5.0.pre.1478/lib/common/thread_pool.rb:83:in `block (2 levels) in create_thread'
  24. /var/vcap/packages/director/gem_home/gems/bosh_common-1.5.0.pre.1478/lib/common/thread_pool.rb:67:in `loop'
  25. /var/vcap/packages/director/gem_home/gems/bosh_common-1.5.0.pre.1478/lib/common/thread_pool.rb:67:in `block in create_thread'

解决办法:请查看本人博客:http://blog.csdn.net/tiger435/article/details/8808623#t5,部署成功反馈:

[plain] view plaincopy
  1. root@bosh-cli:~/bosh-workspace/deployments# bosh deploy
  2. Getting deployment properties from director...
  3. Unable to get properties list from director, trying without it...
  4. Compiling deployment manifest...
  5. Cannot get current deployment information from director, possibly a new deployment
  6. Please review all changes carefully
  7. Deploying `bosh-openstack.yml' to `microbosh-openstack' (type 'yes' to continue): yes
  8. Director task 89
  9. Preparing deployment
  10. binding deployment (00:00:00)
  11. binding releases (00:00:00)
  12. ....
  13. Updating job nats
  14. nats/0 (canary) (00:00:29)
  15. Done                    1/1 00:00:29
  16. Updating job redis
  17. redis/0 (canary) (00:00:24)
  18. Done                    1/1 00:00:24
  19. Updating job postgres
  20. postgres/0 (canary) (00:00:44)
  21. Done                    1/1 00:00:44
  22. Updating job powerdns
  23. powerdns/0 (canary) (00:00:25)
  24. Done                    1/1 00:00:25
  25. Updating job blobstore
  26. blobstore/0 (canary) (00:00:25)
  27. Done                    1/1 00:00:25
  28. Updating job director
  29. director/0 (canary) (00:00:58)
  30. Done                    1/1 00:00:58
  31. Updating job registry
  32. registry/0 (canary) (00:00:33)
  33. Done                    1/1 00:00:33
  34. Updating job health_monitor
  35. health_monitor/0 (canary) (00:00:28)
  36. Done                    1/1 00:00:28
  37. Task 3 done
  38. Started         2013-12-17 02:41:15 UTC
  39. Finished        2013-12-17 02:57:08 UTC
  40. Duration        00:15:53
  41. Deployed `bosh-openstack.yml' to `microbosh-openstack'

8、验证部署是否成功

[plain] view plaincopy
  1. root@bosh-cli:~/bosh-workspace/deployments/bosh-openstack# bosh vms
  2. Deployment `bosh-openstack'
  3. Director task 90
  4. Task 90 done
  5. +------------------+---------+---------------+--------------------------+
  6. | Job/index        | State   | Resource Pool | IPs                      |
  7. +------------------+---------+---------------+--------------------------+
  8. | blobstore/0      | running | common        | 50.50.0.11               |
  9. | director/0       | running | common        | 50.50.0.10, 10.68.19.132 |
  10. | health_monitor/0 | running | common        | 50.50.0.13               |
  11. | nats/0           | running | common        | 50.50.0.5                |
  12. | postgres/0       | running | common        | 50.50.0.7                |
  13. | powerdns/0       | running | common        | 50.50.0.9, 10.68.19.131  |
  14. | redis/0          | running | common        | 50.50.0.6                |
  15. | registry/0       | running | common        | 50.50.0.12               |
  16. +------------------+---------+---------------+--------------------------+
  17. VMs total: 8

如上,所有Job的状态都是running,则部署成功。

OpenStack使用Bosh部署CloudFoundry(四)—使用Micro Bosh部署Bosh相关推荐

  1. K8s集群部署(四)------ Flannel网络部署

    所有节点都要部署Flannel网络,在所有节点操作. 1.为Flannel生成证书 [root@k8s-master ssl]# pwd /usr/local/src/ssl[root@k8s-mas ...

  2. openstack用bosh部署cloudfoundry(三)---安装micro bosh

    版本说明: openstack:Grizzly版本+nova-network micro bosh其实就是单机版的bosh,它包含了bosh的所有组件,只不过它适合用来部署规模较小的集群,而cloud ...

  3. 使用Bosh在OpenStack上部署CloudFoundry碰到的问题

    CloudFoundry部署交流QQ群:176302388 1.部署Micro Bosh碰到的问题 1.1.Micro Bosh虚拟机上执行micro bosh部署命令时出错: bosh micro ...

  4. openstack用bosh部署cloudfoundry(五)---用bosh部署cloudfoundry

    利用bosh部署cloudfoundry的过程和部署bosh的过程基本一样,准备三样东西,stemcell-用来生成镜像并创建虚拟机以及编译release,release里面包含所有要部署的组件的包, ...

  5. 传统公司部署OpenStack(t版)简易介绍(四)——placement模块部署

    传统公司部署OpenStack(t版)简易介绍(四)--placement模块部署 一.创建数据库实例和数据库用户 二.创建Placement服务用户和API的endpoint 三.测试 总结 一.创 ...

  6. 循序渐进linux——基础知识、服务器搭建、系统管理、性能调优、集群应用_第四讲,Proxmox部署与应用...

    大家好!今天小编继续给大家介绍Ceph存储系统第四讲<Proxmox部署与应用>.在前几讲给大家介绍了Ceph存储系统基础知识,大家应该已经对Ceph有个大概了解,当然了解归了解,在实际工 ...

  7. Lync Server 2010的部署系列(四) outlook无法加入联机会议

    Lync Server 2010的部署系列(四) outlook无法加入联机会议 今天早上和一个深圳朋友使用outlook加入联机会议的时候,报错,提示如下图,故障描述:由于本机的限制,该操作已被取消 ...

  8. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 四

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  9. Exchange Server 2016 独立部署/共存部署 (四)—— 配置DAG(上)

    https://blog.51cto.com/horse87/1749480 Exchange Server 2016 独立部署/共存部署 (四)-- 配置DAG(上) horse87关注0人评论16 ...

最新文章

  1. 有一个5 * 5的二维数组,保留主对角线上的元素,并使其他元素均为0,要求用函数和子函数完成
  2. 常用对照表之TCP及UDP常见端口参照
  3. Git分支操作与远程仓库的使用
  4. Apache Nutch 1.3 学习笔记目录
  5. 信息学奥赛一本通 1116:最长平台 | OpenJudge NOI 1.9 12:最长平台 | 洛谷 B2097 最长平台
  6. Android调用系统照相机
  7. 超强计算机病毒代码,木马编程 之超强服务... 附代码 原创.
  8. grafana的前端技术_Grafana开发环境搭建
  9. 创建Python数据分析的Docker镜像+Docker自定义镜像commit,Dockerfile方式解析+pull,push,rmi操作...
  10. HEVC---xCompressCU()函数作用及位置
  11. 信号发生器的基本知识
  12. 学计算机的怎么防辐射,一种学生用防辐射计算机的制作方法
  13. 推荐一些本科生理工科书籍
  14. uniapp中使用网页录音并上传声音文件(发语音)——js-audio-recorder的使用【伸手党福利】
  15. python pickle and json
  16. spring JDBCTemplate实现批量插入及返回id
  17. 【Java】动态代理原理分析
  18. 通过R语言实现平稳时间序列的建模--基础(ARMA模型)
  19. 【Mockjs】React + Mockjs 模拟接口
  20. linux命令英文释义

热门文章

  1. linux应用程序设置粘滞位,Linux粘滞位的设置
  2. linux下的粘滞位
  3. 贺岁献礼:求职小说《求求你,给我份工作》(1)
  4. 详解html和thymeleaf中的相对路径,解决springboot前台页面的相对路径问题
  5. 分销商城平台哪个好_分享分销商城开发步骤
  6. ubuntu 咪咕音乐安装(新手可学)
  7. 微信小程序 设置cookie-保持会话持久-免登录
  8. 论文管理系统(数据库搭建)
  9. 电磁场与磁路理论基础 (总结收藏)
  10. 大二数据库实验-MySQL语句(Employee、Department、Salary)