[教程]在Ubuntu上部署CloudFoundry Server

tsl0922 发布于 2012/08/02 19:01
阅读 6K+
收藏 25
Cloud Foundry简介: Cloud Foundry是VMware主导使用Ruby开发的一款开源PaaS(Platform-as-a-Service,平台服务)云计算平台,类似于Salesforce旗下的 Heroku,遵从 OpenStack云计算平台规范。

上周尝试通过从源码构建的方式在Ubuntu10.04.4 LTS上安装CloudFoundry Server,虽然最后成功了,但是过程及其艰辛,一波N折,花了很长的时间。
在这个过程中要下载、编译、安装很多的软件包,有几个G吧,非常耗时。还有些东西得FQ才能下载(eg:rubygems.org),在国内,你懂的。

从源码安装

从源码安装”比较简单“,只需要一个命令,然后你就把电脑放那等着吧:

sudo apt-get install curl
bash < <(curl -s -k -B https://raw.github.com/cloudfoundry/vcap/master/dev_setup/bin/vcap_dev_setup)

中间可能会发现这个命令卡在那里不动没有进度了,恭喜你,我们伟大的GFW开始调戏你了。这主要是因为rubygems.org被墙了(CloudFoundry是用Ruby开发的),这时你有两种选择:

一个是给dev_setup设置代理,有两种方法:
方法1 使用-p参数

~/vcap_dev_setup -p http://username:password@host :port/

方法2 设置http_proxy环境变量

export http_proxy="http://username:password@host :port/"

另一个就是替换rubygems镜像站点,为了解决这个问题,淘宝提供了国内的rubygems镜像站点:http://ruby.taobao.org/,感谢淘宝!具体怎么使用,到淘宝镜像站点上看。

我用的是代理。不过用代理会在中间下载一些东西时会出现证书错误,git和pycurl都会出错,还得切换回不使用代理。(注:git可以通过命令git config –global http.sslverify false来关闭ssl验证)

通过PPA源安装

后来google了一下,发现CloudFoundry也有PPA源,这下方便多了,虽然PPA源的下载速度之慢用过的都知道,但总比从源码安装要下载的文件小得多(加上一些依赖几百M),速度慢之类的也还好解决

添加PPA源并安装cloudfoundry-server

sudo apt-add-repository ppa:cloudfoundry/ppa
sudo apt-get update
sudo apt-get install cloudfoundry-server

注:此PPA源只有11.10的软件包,如果需要在其他版本ubuntu上安装,请使用daily源: ppa:cloudfoundry/daily)

安装过程中会让你输入一些MySQL密码之类的信息。如果你的网速给力的话10分钟应该就可以安装好。

后面测试的时候还会用到客户端:

sudo apt-get install cloudfoundry-client

测试:

1.首先设置hosts:

echo "127.0.0.1  api.vcap.me env.vcap.me" | sudo tee -a /etc/hosts

2.把vmc的target指向本地vcap服务器:

$ vmc target api.vcap.me
Succesfully targeted to [http://api.vcap.me]

3.添加用户:

$ vmc add-user 
Email: kirkland@example.com
Password: ********
Verify Password: ********
Creating New User: OK
Successfully logged into [http://api.vcap.me]

4.登陆:

$ vmc login 
Email: kirkland@example.com
Password: ********
Successfully logged into [http://api.vcap.me]

5.部署应用(helloword):

创建应用程序目录(env)

mkdir env && cd env

把下面内容保存为一个ruby文件(env.rb)

require 'rubygems'
require 'sinatra'

get '/' do
  host = ENV['VCAP_APP_HOST']
  port = ENV['VCAP_APP_PORT']
  "<h1>XXXXX Hello from the Cloud! via: #{host}:#{port}</h1>"
end

get '/env' do
  res = ''
  ENV.each do |k, v|
    res << "#{k}: #{v}<br/>"
  end
  res
end

创建并上传App

vmc push env --instances 4 --mem 64M --url env.vcap.me -n

浏览器访问App:

http://env.vcap.me

查看App状态:

vmc apps

你会看到类似下面结果:

+-------------+----+---------+-------------+----------+
| Application | #  | Health  | URLS        | Services |
+-------------+----+---------+-------------+----------+
| env         | 1  | RUNNING | env.vcap.me |          |
+-------------+----+---------+-------------+----------+

 [教程完]

VmWare的CloudFoundry还是挺强大的,开发工具,文档也还算全面。客户端可以用命令行的vmc,也有eclipse插件可以用。不过毕竟现在处于Beta阶段还是有不少地方需要改进的。

这是我在VmWare CloudFoundry上部署的一个Java博客系统(@红薯 写的DLOG4J)有兴趣的可以过去看看:http://luckyc.cloudfoundry.com/

参考资料:

https://github.com/cloudfoundry/vcap
https://github.com/cloudfoundry/oss-docs
http://docs.cloudfoundry.com/getting-started.html 
http://blog.dustinkirkland.com/2011/08/howto-install-cloudfoundry-server-paas.html

加载中
0
红薯
红薯
很早以前的 DLOG4j 你还拿出来现眼,我汗!
JollyRoger
JollyRoger
- - !没用过SSH框架的表示看不懂。。。
noday
noday
@红薯 关键是没时间,我连转载文章的时间都没有
红薯
红薯
回复 @李烈火 : 主要是没时间,而且博客现在已经不流行了
红薯
红薯
回复 @李烈火 : 是开源的,有兴趣的人可以去维护:)
noday
noday
这么多人用,是不是要继续维护一下
0
xiesoul
xiesoul
谢谢分享了!
0
水牛叔叔
水牛叔叔
这个先藏好,等我稍微会用hadoop再回来学
0
Lucixfer
Lucixfer

我也正在学hadoop 哈

 

返回顶部
顶部