Bosh-lite简介

      bosh-lite 是一个单机部署cloudfoundry的实验性工具,用于开发人员做poc 验证。Bosh-lite目前支持仅MAC OS X和Linux系统。Bosh-lite使用Vagrant管理虚拟机,所以目前只支持VirtualBox和VMWare Fusion (MAC OS X)虚拟机平台。

 
       如下图所示,Bosh客户端CLI运行在宿主机(HOST OS)上,通过Bosh CLI,我们可以把Bosh和Cloud Foundry的各个component部署在VirtualBox的虚拟机上,Bosh和CloudFoundry的各个Component,例如UAA,Router等,都是运行在Warden容器(Warden Container)中。 

2, 环境准备

        笔者采用的事Cent OS 7.0 与 ubuntu 15.04 作为宿主机的操作系统,vmware 作为虚拟平台。 centos7 与 ubuntu15.04 都是装在vmware中的虚拟机。 必须将vmware 中的Inetl VT-X 打开,因为vagrant的box是64位,如果不打开VT-X 作为provide 的virtualbox 无法运行64位镜像。 设置方法vmware 选中虚拟机,然后在菜单中选中虚拟机菜单,在虚拟机设置中选择处理器设置,在右边打开VT-X选项
 
 

2.1 安装软件包

centos 准备内容

# rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# yum install -y vim git screen kernel* libX11 qt SDL SDL-devel libxml2-devel libvpx libpng libXt libXmu libxslt libxslt-devel openssl openssl-devel libXcursor libXinerama
qt qt-devel wget gcc unzip ntpdate net-tools
 
ubuntu 15.04 准备内容
sudo apt-get install build-essential libxml2-dev libsqlite3-dev libxslt1-dev libpq-dev libmysqlclient-dev

2.2 安装Ruby环境

        笔者使用rbenv来安装和管理ruby
  1. $ git clone git://github.com/sstephenson/rbenv.git $HOME/.rbenv
  2. $ git clone https://github.com/sstephenson/ruby-build.git $HOME/.rbenv/plugins/ruby-build
  3. $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
  4. $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
  5. $ source ~/.bash_profile
  6. $ rbenv install 2.1.3
  7. $ rbenv global 2.1.3
  8. $ gem sources --remove https://rubygems.org/
  9. $ gem sources -a https://ruby.taobao.org/
  10. $ gem sources -l
  11. $ gem install bundle
  12. $ gem install nokogiri -- --use-system-libraries

2.3安装Vagrant

centos 安装方法

  1. # wget  https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2_x86_64.rpm
  2. # rpm -Uvh vagrant_1.7.2_x86_64.rpm

ubuntu 安装方法

 
sudo apt-get install vagrant -y

  

 
验证vagrant
  1. # vagrant --version
  2. Vagrant 1.6.3

2.4 安装VirtualBox

centos 安装方法

  1. # wget http://download.virtualbox.org/virtualbox/4.3.26/VirtualBox-4.3-4.3.26_98988_el7-1.x86_64.rpm
  2. # # 安装virtualbox时需要linux kernel的源代码,设置KERN_DIR环境变量指示kernel源代码路径
  3. # export KERN_DIR=/usr/src/kernels/3.10.0-229.4.2.el7.x86_64
  4. # rpm -Uvh VirtualBox-4.3-4.3.26_98988_el7-1.x86_64.rpm

ubuntu 安装方法

sudo apt-get install virtualbox -y
 
验证virtualbox是否安装成功
  1. # VBoxManage --version
  2. 4.3.14r95030

3, 部署CloudFoundry

3.1 安装Bosh CLI

  1. # gem install bosh_cli

3.2 安装manifest merge工具

  1. # wget https://github.com/cloudfoundry-incubator/spiff/releases/download/v1.0.3/spiff_linux_amd64.zip
  2. # unzip spiff_linux_amd64.zip -d /usr/bin

3.3 Checkout bosh-lite和cf-release

bosh-lite和cf-release这两个代码库必须放在同一级目录下,这里的workspace文件夹名称必须是workspace,且路径也必须在用户的根目录。即~目录下,原因是bosh-lite 文件夹下的bin/make_manifest_spiff 中有下面这一句。为了避免路径错误,需要将文件夹明明为workspace 并且放在~目录下。
BOSH_RELEASES_DIR=${BOSH_RELEASES_DIR:-~/workspace}
 
  1. # mkdir ~/workspace
  2. # cd ~/workspace
  3. # git clone https://github.com/cloudfoundry/bosh-lite
  4. # git clone https://github.com/cloudfoundry/cf-release

3.4 启动VirtualBox虚拟机

  1. # cd ~/workspace/bosh-lite
  2. # vagrant up --provider=virtualbox

在这里可能会遇到如下错误。这个错误有两个原因,一个是VT-X 没打开,这是最大的可能。另一个可能就是vmware 虚拟机的资源不够。修改vmware 虚拟机的内存和CPU 资源。(笔者使用的9G 内存 4CPU 分配给centos7 或者ubuntu 15.04),这个vagrant的资源可以调整,在 bosh-lite/template/vagrant-local-tpl 中。

 
出现上述错误console, 在对应的GUI 界面启动virtualbox错误如下图
 
遇到上述错误之后,需要删除以前的vagrant的虚拟机,重新启动。
vagrant halt
vagrant destroy
vagrant up
 
 
启动成功后可以运行下面的命令去查看虚拟机的状态
  1. # vagrant global-status
启动后的vagrant box 虚拟机配置了两块网卡,一块用来连接CloudFoundry网络,使用10.244.0.0/19;一块用来和宿主机通信,使用IP 192.168.50.4
因此在宿主机centos7 或者ubuntu150.4 需要添加访问CloudFoundry网络的路由。这两个ip的配置一个在 bosh-lite/template/vagrant-local.tpl中。bosh-lite 本人也有addrout.sh addroute.bat 这个命令。
  1. # route add -net 10.244.0.0/19 gw 192.168.50.4

3.5部署CloudFoundry

如果配置了HTTP或者HTTPS的代理,请先运行下面这条命令
  1. export no_proxy=192.168.50.4,xip.io

3.5.1把bosh指向当前的bosh-lite的Director

  1. # bosh target 192.168.50.4 lite
这里login的用户名密码为
用户名:admin
密码: admin 
 
 
查看bosh的状态

  1. # bosh status
  2. Config
  3. /root/.bosh_config
  4. Director
  5. Name Bosh Lite Director
  6. URL https://192.168.50.4:25555
  7. Version 1.2811.0 (00000000)
  8. User admin
  9. UUID c6f166bd-ddac-4f7d-9c57-d11c6ad5133b
  10. CPI vsphere
  11. dns disabled
  12. compiled_package_cache enabled (provider: local)
  13. snapshots enabled
  14. Deployment
  15. not set
Bosh-lite提供了一个脚本,可以一键式部署CloudFoundry
  1. # cd ~/workspace/bosh-lite
  2. # bin/provision_cf

执行的时候,会从http://bosh-jenkins-artifacts.s3.amazonaws.com/bosh-stemcell/warden/latest-bosh-stemcell-warden.tgz 去下载压缩包,这个地址因为是S3的地址,所以很可能中途会中断。 中断之后,下载不完全的文件会在bosh-lite 文件夹下。删除不完整的文件,用下载工具,下载完整的tgz包。然后上传到 bosh-lite 文件夹下。

检验CloudFoundry是否部署成功

  1. # bosh vms
  2. Deployment `cf-warden'
  3. Director task 9
  4. Task 9 done
  5. +------------------------------------+---------+---------------+--------------+
  6. | Job/index | State | Resource Pool | IPs |
  7. +------------------------------------+---------+---------------+--------------+
  8. | api_z1/0 | running | large_z1 | 10.244.0.134 |
  9. | etcd_z1/0 | running | medium_z1 | 10.244.0.42 |
  10. | ha_proxy_z1/0 | running | router_z1 | 10.244.0.34 |
  11. | hm9000_z1/0 | running | medium_z1 | 10.244.0.138 |
  12. | loggregator_trafficcontroller_z1/0 | running | small_z1 | 10.244.0.146 |
  13. | loggregator_z1/0 | running | medium_z1 | 10.244.0.142 |
  14. | nats_z1/0 | running | medium_z1 | 10.244.0.6 |
  15. | postgres_z1/0 | running | medium_z1 | 10.244.0.30 |
  16. | router_z1/0 | running | router_z1 | 10.244.0.22 |
  17. | runner_z1/0 | running | runner_z1 | 10.244.0.26 |
  18. | uaa_z1/0 | running | medium_z1 | 10.244.0.130 |
  19. +------------------------------------+---------+---------------+--------------+
  20. VMs total: 11
虚拟机重启之后,有可能导致很多服务无法使用。此时需要使用bosh cck 即 bosh cloudcheck 命令来进行检查,然后选择2 重用上次的信息。
参考文献 http://blog.csdn.net/maingalaxy/article/details/46013393

在centos7 ubuntu15.04 上通过bosh-lite 搭建单机环境cloudfoundry的更多相关文章

  1. Ubuntu15.04上为火狐浏览器安装Adobe Flash Player插件

    前言:最新版的ubuntu好像没有flashplayer,而且更新源也无法更新成功,找些资料终于发现 这个需要自己手动配置.由于flashplayer无法安装,导致视频,百度上传等功能都无法使用: 安 ...

  2. Centos7+Apache2.4+php5.6+mysql5.5搭建Lamp环境——为了wordPress

    最近想搭建个人博客玩玩,挑来挑去发现口碑不错的博客程序是wordpress,简称wp.虽然是学java路线的程序员,但因入行时间太短,至今没有发现较为称手开源的博客程序,如果各位大神有好的推荐,也希望 ...

  3. Ubuntu Server 16.04.1 LTS 64位 搭建LNMP环境

    安装配置 Nginx 为了确保获得最新的 Nginx,先使用sudo apt-get update命令更新源列表.安装 Nginx,输入命令:sudo apt-get install nginx. 启 ...

  4. Window上python 开发--1.搭建开发环境

    事实上在开发python最好在ubuntu环境下,简单也便于扩展各个package.可是我的linux的电脑临时不在身边.还的我老婆的电脑win7没办法啊. 因为python的跨平台性.在window ...

  5. 【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程

    原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一 ...

  6. U盘制作Ubuntu15.04启动盘失败

    先用ubuntu15.04光盘在已有xp的电脑上安装成功​ 随后在Ubuntu安装labview说glibc没安装​ 但是ldd --version显示是安装的新版的​ 后来怀疑是86_64的原因​ ...

  7. 在 Ubuntu 14.04/15.04 上配置 Node JS v4.0.0

    大家好,Node.JS 4.0 发布了,这个流行的服务器端 JS 平台合并了 Node.js 和 io.js 的代码,4.0 版就是这两个项目结合的产物——现在合并为一个代码库.这次最主要的变化是 N ...

  8. 用U盘安装Ubuntu15.04

    用UltraISO刻录Ubuntu15.04到U盘安装,出现:Failed to load idlinux.c32错误,解决办法如下: source url: http://www.ubuntukyl ...

  9. 31. Ubuntu15.04系统中如何启用、禁用客人会话

    https://jingyan.baidu.com/article/046a7b3edf9639f9c27fa995.html 31. Ubuntu15.04系统中如何启用.禁用客人会话 听语音 | ...

随机推荐

  1. JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for

    查看一个简单的jQuery的例子来遍历一个JavaScript数组对象. [js] view plaincopy   var json = [ {"id":"1" ...

  2. spring + springMVC + spring Data + jpa + maven 项目框架搭建

    首先看一下项目结构: 所用到的jar(pom.xml): <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x ...

  3. Java多线程——线程范围内共享变量和ThreadLocal

    多个线程访问共享对象和数据的方式 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. package java_ ...

  4. Android Studio 项目中,哪些文件应该忽略而不提交到svn的服务器中?

    Android Studio 中建议过滤的文件: - .idea 文件夹 - .gradle 文件夹 - 所有的 build 文件夹 - 所有的 .iml 文件 - local.properties  ...

  5. 【WP8】自定义配置存储类

    之前在WP7升级到WP8的时候遇到配置不兼容的问题 情景:之前只有一个WP7版本,现在需要发布WP8版本,让用户可以从原来的WP7版本升级到WP8版本 一般情况下从WP7升级到WP8没什么问题 但是在 ...

  6. jsp+springmvc实现文件上传、图片上传和及时预览图片

    1.多文件上传:http://blog.csdn.net/a1314517love/article/details/24183273 2.单文件上传的简单示例:http://blog.csdn.net ...

  7. QT编译错误:undefined reference to `__imp_gl*'等等

    学习QT OpenGL绘制图形,程序中使用了OpenGL的API函数(gl开头),但是编译出现了错误:截图如下 有过编程经验的人可知,是链接的时候出错,找不到函数的实现! 解决方法:在工程*.pro文 ...

  8. VC++6.0远程调试(亲试成功)

    0 前言 VS2008及以上远程调试上篇已经讲过,这里再讲下VC++6.0开发环境下的远程调试能力,仅需下面4步即可,更方便的就接着后面的5-6步. 因为目标程序需要在有采集卡等相关硬件支持下的工控机 ...

  9. Java正则表达式的使用和详解(下)

    1.常用正则表达式 规则 正则表达式语法   一个或多个汉字 ^[\u0391-\uFFE5]+$  邮政编码 ^[1-9]\d{5}$ QQ号码 ^[1-9]\d{4,10}$  邮箱 ^[a-zA ...

  10. python修改python unittest的运行顺序

    正常是一个测试类中按函数名字运行, 下面修改成直接按每个测试方法的代码顺序执行 文件 unittest_util.py import time import unittest from app.uti ...