Cloud Foundry参赛博文——用BOSH部署CloudFoundry实战

来源:互联网 发布:云墙mac下载 编辑:程序博客网 时间:2024/05/17 05:05

Cloud Foundry参赛博文——用BOSH部署CloudFoundry实战

当您看到这篇文章的时候,相信对什么是CloudFoundry、BOSH、dev_setup已经非常熟悉了。客套的我们就不说了,直接上干果。

用dev_setup部署

看官,您先别惊讶,文章名字虽说叫用BOSH部署CloudFoundry实战,还允许我说下对用dev_setup部署的一点经验,也许对您有一点点帮助。

用dev_setup部署太简单了 两条命令

sudo apt-get install curlbash < <(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,无论在论坛里,qq群里大家都反映target就失败。最简单的方法就是在您的DNS 服务器里把vcap.me加上。

至此,您就可以顺利的发布程序了。

用BOSH部署CloudFoundry

终于回到BOSH上了,用BOSH部署用户体验确实比dev_setup爽多了。在官方给出的教程的基础上,本文给出更具体的说明,也算做是官方教程的注解吧;但愿能协助到您。

一 准备工作

最好两台服务器以上

部署好EXSI、vCenter;

最好有共享存储

二 一步一步

1 BOSH CLI

这一步很简单,

  1. 安装ruby 1.9.2或者更高的版本
  2. gem install bosh_cli
  3. sudo apt-get -y install libsqlite3-dev genisoimage
  4. 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: boshdirector_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里配置好您的域名。

内部网络顺畅。

在我部署的过程中,这些问题都有涉及,但愿您少走弯路。