Cloud Foundry参赛博文——用BOSH部署CloudFoundry实战
当您看到这篇文章的时候,相信对什么是CloudFoundry、BOSH、dev_setup已经非常熟悉了。客套的我们就不说了,直接上干果。
用dev_setup部署
看官,您先别惊讶,文章名字虽说叫用BOSH部署CloudFoundry实战,还允许我说下对用dev_setup部署的一点经验,也许对您有一点点帮助。
用dev_setup部署太简单了 两条命令
sudo apt-get install curl
bash < <(curl -s -k -B https://raw.github.com/cloudfoundry/vcap/master/dev_setup/bin/vcap_dev_setup)
可惜哦;开始用这命令安装的时候是失败的一塌糊涂啊。原因就一个 网络不给力,相信您也遇到过。那么我们怎么办呢,其实下载的内容主要有三部分:1 github上下载源码,2 blob上下载软件包,3 gem一些包。其中比较容易出现问题的还是blob上下载包和gem包。
对于第一个部分我们先分别下载下来 主要的包是 cloud_controller dea router stager vcap,这些在vcap_dev_setup里都能看到。
对于第三部分我们就把淘宝的源加进去会提速不少。
第二部分稍微有点麻烦 在vcap/dev_setup/cookbooks里能看到所有需要下载的包,我们一一下载下来,然后放在/var/cache/dev_setup 里面就OK。可能这时候您就感觉不爽了。一个一个找到,而且还要对上版本号,因为里面都有相应的hash值来验证,好比这个
default[:neo4j][:checksum][:server] = "bf1d5fd477cf8dde8718b2dcced0d74293702083b66b1278fe84284503dd3ce8"
default[:neo4j][:checksum][:jar] = "37cdfcc91490f1aaf0fd58dc6591e08c1c6c3044348c76a594dbcaeedbdbdbcd"
为了让大伙少走点弯路,这里有个列表?
memcached-1.4.13.tar.gz pcre-8.12.tar.gz
apache-couchdb-1.2.0.tar.gz mongodb-linux-x86_64-1.8.5.tgz Python-2.6.5.tar.bz2
apache-maven-3.0.4.tar.gz nginx-0.8.54.tar.gz Python-2.6.5.tgz
apache-tomcat-7.0.27.tar.gz nginx-lua.v0.3.1rc24.tar.gz rabbitmq-server-generic-unix-2.4.1.tar.gz
devel-kit-v0.2.17rc2.tar.gz nginx_upload_module-2.2.0.tar.gz rabbitmq-server-with-plugins-generic-unix-2.4.1.tar.gz
elasticsearch-0.19.4.tar.gz node-v0.4.0.tar.gz redis-2.2.15.tar.gz
elasticsearch-http-basic-1.0.3.jar node-v0.4.12.tar.gz ruby-1.8.7-p357.tar.bz2
headers-more-v0.15rc1.tar.gz node-v0.6.8.tar.gz ruby-1.9.2-p180.tar.gz
libevent-2.0.19-stable.tar.gz node-v0.8.2.tar.gz rubygems-1.8.24.tgz
lua-5.1.4.tar.gz npm-1.0.106.tgz xulrunner-3.6.26.en-US.linux-i686.tar.bz2
lua-cjson-1.0.3.tar.gz otp_src_R14B01.tar.gz。
这里的大多包您已经很熟悉了,估计电脑里都存着。如果某个个别包下载不到 就给我要好了。
做完这三部者性下面这条命令就可以了(假设所有的包都放在$HOME/projects)
$HOME/projects/vcap/dev_setup/bin/vcap_dev_setup -d $HOME/projects,不过这个方法有点问题,就是开始执行命令后内别走太远,一根烟没有抽完估计就OK了。
安装完毕后,我们可能在其它的机器上用vmc连接cloudfoundry,无论在论坛里,里大家都反映target就失败。最简单的方法就是在您的DNS 服务器里把vcap.me加上。
至此,您就可以顺利的发布程序了。
用BOSH部署CloudFoundry
终于回到BOSH上了,用BOSH部署用户体验确实比dev_setup爽多了。在官方给出的教程的基础上,本文给出更具体的说明,也算做是官方教程的注解吧;但愿能协助到您。
一 准备工作
最好两台服务器以上
部署好EXSI、vCenter;
最好有共享存储
二 一步一步
1 BOSH CLI
这一步很简单,
- 安装ruby 1.9.2或者更高的版本
- gem install bosh_cli
- sudo apt-get -y install libsqlite3-dev genisoimage
- gem install bosh_deployer #这里不用像教程那样先获取源码了
2 部署Micro BOSH
下载stemcell bosh download public stemcell micro-bosh-stemcell-0.1.0.tgz
编写Manifest 下面是一个验证过的例子
name: micro_bosh
network:
ip: 10.1.1.172 # The IP address of your soon-to-be-deployed Micro BOSH
netmask: 255.255.255.0
gateway: 10.1.1.200
dns:
- 10.1.1.1.1 # You can also include a second DNS server underneath this line.
cloud_properties:
name: "VM Network"
resources:
persistent_disk: 16384
cloud_properties:
ram: 8192
disk: 16384
cpu: 4
cloud:
plugin: vsphere
properties:
agent:
ntp:
- 210.72.145.44 # Specify any NTP server
vcenters:
- host: 10.1.1.171 # Your vCenter server IP
user: administrator # The vCenter user for login
password: passwordpassword # The vCenter user password
datacenters:
- name: cloudtest
vm_folder: BOSH_VMs
template_folder: BOSH_Templates
disk_path: BOSH_Disks
datastore_pattern: datastore230
persistent_datastore_pattern: datastore230
allow_mixed_datastores: true
clusters:
- cloudxxx
对于这个配置文件您只需要修改ip,vcenter的这只就可以了。建设您现在的目录结构如下:
$HOME/deployments/micro_deploy,只需要
cd deployments
bosh micro deployment micro_deploy
bosh micro deployment
bosh micro deploy ~/stemcells/micro-bosh-stemcell-0.1.0.tgz
到此已经部署好micro bosh
3 部署BOSH
下载stemcell bosh-stemcell-vsphere-0.6.7.tgz
bosh target 10.1.1.172:25555
bosh upload stemcell ~/stemcells/bosh-stemcell-vsphere-0.6.7.tgz
获取 bosh release https://github.com/cloudfoundry/bat-release.git
上传 release bosh upload release releases/bosh.yml
编写manifest ,您可以参考这里 https://github.com/cloudfoundry/oss-docs/blob/master/bosh/tutorial/examples/bosh_manifest.yml
这里可能是最麻烦的,下面是写片段,需要特别注意的地方,其它的ip,vcenter的设置需要注意修改。特别是IP部分,需要特别上下对用的地方。
name: bosh
director_uuid: 3aa20323-930f-4ab3-a87e-ab65d81cd9dc # 这个值需要修改,bosh status能看到
release:
name: bosh #这里需要修改 bosh releases能看到
version: 6
stemcell:
name: bosh-stemcell #这里需要修改 bosh stemcells能看到,也就是我们刚刚上传的。
version: 0.6.7
然后bosh deployment ~/bosh-deployments/bosh_manifest.yml
bosh deploy
至此如果您顺利的话,说明您对bosh的流程基本熟悉了,一切的准备工作至此完成,下面就是关键的环节,其实和部署bosh是非常相似的。
4 部署CloudFoundry
和上面一样的流程,首先bosh target directorIP
上传stemcell bosh upload stemcell ~/dyrmcells/bosh-stemcell-0.6.7.tgz
获取relase 并上传 https://github.com/cloudfoundry/cf-release.git,bosh upload cf-releases/cf.yml
编写manifest ,参考这里https://github.com/cloudfoundry/oss-docs/blob/master/bosh/tutorial/examples/dev124.yml
和上一步一样,您要小心配置这个文件。并要有充足的IP
最后bosh deployment ~/deployments/dev124/dev124.yml
总结
用bosh部署还是非常方便的,但是还是要特别注意一下几点:
足够的IP资源;
manifest文件要小心编写,特别是Ip部分;
多台的服务器的话,最好有共享存储;
密码要至少16位,不包含@字符;
在dns里配置好您的域名。
内部网络顺畅。
在我部署的过程中,这些问题都有涉及,但愿您少走弯路。
分享到:
相关推荐
由其定义可以看出,虽然BOSH的诞生出自cloudfoundry的部署难题,但BOSH能做的不只是部署cloudfoundry这一个产品。别的分布式系统只要提供给bosh一个release,BOSH一样可以做到系统的部署和生命周期的管理。所以,...
cloud foundry 大规模部署(bosh)及平台运营完整中文手册
用BOSH自动部署大规模 云平台Cloud Foundry: Cloud Foundry云平台简介 Cloud Foundry架构 Cloud Foundry部署模型 BOSH工作原理 用BOSH自动化部署Cloud Foundry 用BOSH实现Cloud Foundry弹性 BOSH应用实例
使用BOSH进行Cloud Foundry的生产环境部署 使用BOSH进行Cloud Foundry的生产环境部署
详细介绍了Cloud Foundry的BOSH各个部分和功能。
CloudFoundry云平台部署手册.pdf
Cloudfoundry
CloudFoundry开源云计算平台简介rar,提供“CloudFoundry开源云计算平台简介”免费资料下载,主要包括Cloud Foundry的概述、Cloud Foundry的架构、使用Cloud Foundry部署应用等内容,可供学习使用。
Get started with Cloud Foundry, the leading Platform as a Service (PaaS) that’s dramatically changing how developers, operations practitioners, and especially DevOps teams deploy applications and ...
该文档来自于Docker Meetup深圳站,华为蒙泽超带来了题为“使用CloudFoundry 的BOSH管理Docker的集群”的演讲。
Spring 与 Cloud Foundry:在云中珠联璧合
PM解决方案和合作伙伴专场 3 CloudFoundry服务网关的架构
CloudFoundry的介绍文档,入门必备
Cloud Foundry合作伙伴战略和案例分享 Cloud Foundry合作伙伴战略和案例分享
Cloud Foundry平台概述,
本文档主要讲述的是在cloud foundry上开发JAVA应用;Cloud Foundry是一个开源的PaaS云计算平台,它提供给...Cloud Foundry是一个开源项目,用户可以使用多种私有云发行版,也可以使用公共云服务,包括 CloudFoundry.com
PM数据库专场 CloudFoundry中MongoDB的应用
Cloud Foundry是VMware于推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。同时,它本身是...
当我们采用:使用已经做好的镜像来部署cloudfoundry的话,打开镜像会遇到ip不匹配的问题,需要使用此脚本修改ip。
描述Cloud Foundry核心组件的功能,及各组件之间的联系