在Ubuntu上部署CloudFoundry Server
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阶段还是有不少地方需要改进的。