分享

在Ubuntu上部署CloudFoundry Server指导

desehawk 发表于 2015-1-20 11:37:50 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 26997
本帖最后由 desehawk 于 2015-1-20 11:39 编辑

问题导读

1.从源码安装会遇到什么问题?
2.如何通过PPA源安装?
3.本文提供了几种安装方式?








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


从源码安装


从源码安装”比较简单“,只需要一个命令,然后你就把电脑放那等着吧:
  1. sudo apt-get install curl
  2. 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参数

  1. ~/vcap_dev_setup -p http://username:password@host :port/
复制代码


方法2 设置http_proxy环境变量

  1. 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

  1. sudo apt-add-repository ppa:cloudfoundry/ppa
  2. sudo apt-get update
  3. sudo apt-get install cloudfoundry-server
复制代码



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

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

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

  1. sudo apt-get install cloudfoundry-client
复制代码


测试:

1.首先设置hosts:

  1. echo "127.0.0.1  api.vcap.me env.vcap.me" | sudo tee -a /etc/hosts
复制代码

2.把vmc的target指向本地vcap服务器:
  1. $ vmc target api.vcap.me
  2. Succesfully targeted to [http://api.vcap.me]
复制代码


3.添加用户:
  1. $ vmc add-user
  2. Email: kirkland@example.com
  3. Password: ********
  4. Verify Password: ********
  5. Creating New User: OK
  6. Successfully logged into [http://api.vcap.me]
复制代码
4.登陆:

  1. $ vmc login
  2. Email: kirkland@example.com
  3. Password: ********
  4. Successfully logged into [http://api.vcap.me]
复制代码


5.部署应用(helloword):
创建应用程序目录(env)

  1. mkdir env && cd env
复制代码


把下面内容保存为一个ruby文件(env.rb)
  1. require 'rubygems'
  2. require 'sinatra'
  3. get '/' do
  4.   host = ENV['VCAP_APP_HOST']
  5.   port = ENV['VCAP_APP_PORT']
  6.   "<h1>XXXXX Hello from the Cloud! via: #{host}:#{port}</h1>"
  7. end
  8. get '/env' do
  9.   res = ''
  10.   ENV.each do |k, v|
  11.     res << "#{k}: #{v}<br/>"
  12.   end
  13.   res
  14. end
复制代码


创建并上传App
  1. vmc push env --instances 4 --mem 64M --url env.vcap.me -n
复制代码


浏览器访问App:
  1. http://env.vcap.me
复制代码


查看App状态:
  1. vmc apps
复制代码



你会看到类似下面结果:


  1. +-------------+----+---------+-------------+----------+
  2. | Application | #  | Health  | URLS        | Services |
  3. +-------------+----+---------+-------------+----------+
  4. | env         | 1  | RUNNING | env.vcap.me |          |
  5. +-------------+----+---------+-------------+----------+
复制代码


[教程完]

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

















已有(3)人评论

跳转到指定楼层
desehawk 发表于 2015-1-20 11:48:44
进一步补充:
这种安装方式,则是通过手工安装比较麻烦些




宿主机:Mac OSX 10.8.1, 虚拟机:VMware Fusion 5.0.0, Ubuntu 10.04.4 Desktop x64


Step1 Ubuntu系统更新:
  1.$ sudo apt-get update
  2.$ sudo apt-get upgrade
  3.$ sudo apt-get dist-upgrade  
  4.$ sudo reboot


Step2 安装curl 和 git。curl 用于数据传输, git 用于版本管理
  1.$ sudo apt-get install curl
  2.$ sudo apt-get install git-core


Step3 为git配置用户名和电邮。

须与在  https://github.com/  上的用户名及注册邮箱一致。替换红色内容,保留引号。
  1.$ git config --global user.name " YOUR_USER_NAME "
  2.$ git config --global user.email " YOUR_EMAIL_ADDRESS "
  (可用以下命令检查配置是否正确: $ git config -l)


Step4 生成SSH公钥

(参考 https://help.github.com/articles/generating-ssh-keys  )。该公钥确保在本机与Github间建立安全连接
  1.$ ssh-keygen -t rsa -C " YOUR_EMAIL_ADDRESS "
     会提示设置一个passphrase。这个passphrase用于每次建立ssh连接时进行身份验证,不必与Github帐户的密码相同,但一定不能遗忘,否则将不能建立ssh连接。
  2.$ cat ~/.ssh/id_rsa.pub
     复制id_rsa.pub文件内容(即刚才所生成的SSH公钥),登陆  Github  网站并进入 Account Settings->SSH Keys->Add SSH Key  ,粘贴至 Key 区域。
     要确保复制内容与公钥的文字完全一致,即使多复制一个空格或空行都有可能出问题。也可按照参考链接 https://help.github.com/articles/generating-ssh-keys 中的方法使用 xclip。
  3.测试能否成功建立ssh连接
     $ ssh -T git@github.com  
     会弹出一个提示框,要求输入密码。输入上面所设定的passphrase即可。
     正确输入passphrase后,若在终端窗口中看到"Hi YOUR_USER_NAME ! You've successfully authenticated, but GitHub does not provide shell access.",说明一切正常,可以从github上`git clone`代码了。(这是我自己的测试过程,与Github参考链接中稍有出入)


Setp5 安装ruby:
  1.安装RVM(Ruby Version Manager)并添加环境变量
$ bash -s stable < <(curl -s https://raw.github.com/wayneeseg ... ripts/rvm-installer)
$ nano ~/.bashrc
在末尾添加新行:  [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
$ source .bashrc  
(重新载入.bashrc以使改变生效)
$ type rvm |head -1  
(若提示"rvm is a function",说明rvm已正确安装)
  2.安装ruby所需的依赖包
$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev libtool
$ sudo apt-get install libcurl3 libcurl3-gnutls libcurl4-openssl-dev

  3.使用rvm安装ruby1.9.2,并将其作为默认的ruby版本
$ rvm install 1.9.2
  $ rvm --default use 1.9.2

  4.安装rails
$ gem install rails
至此,ruby环境已安装就绪。为了在本地运行Cloud Foundry网站,还需进行以下准备工作。


Step6 使用gerrit:
  1. 分别注册并登陆 reviews.cloudfoundry.org  和 http://cloudfoundry-codereview.qa.mozycloud.com/gerrit/#q,4708,n,z  。前者是开源的代码库,而后者只对内部开放。
  在  Settings->Profile  中设定Username,在  Settings->Contact Information  中单击  Register New Email  添加新电邮地址,Username和新电邮地址均与Step3中一致。在 SSH Public Keys  中添加Step4中生成的公钥,添加方法同Step4(2)。

  2. 安装gerrit辅助脚本。
用于优化gerrit使用中的一些小问题。
$ gem install gerrit-cli

  3. 获取tools代码库并为其添加环境变量 (~/.bashrc文件)。
$ git clone git@github.com:vmware-ac/tools.git
添加tools环境变量。 Example: PATH= $HOME/tools/gerrit :$HOME/local/node/bin:/usr/local/mysql/bin..

  4. 获取cloudfoundry-website代码(非public)。将红色区域替换为你自己的用户名。代码将保存在~/cloudfoundry-websites
$ gerrit-clone ssh:// YOUR_USER_NAME @cloudfoundry-codereview.qa.mozycloud.com:29418/cloudfoundry-websites


Step7 安装并配置redis

cloudfoundry网站运行需要调用redis库。
  1.下载并安装
$ cd /tmp
  $ wget http://redis.googlecode.com/files/redis-2.2.4.tar.gz
  $ tar -zxf redis-2.2.4.tar.gz
  $ cd redis-2.2.4
  $ make
  $ sudo make install
  2.配置初始化脚本:
$ wget https://github.com/ijonas/dotfil ... init.d/redis-server
  $ wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf
  $ sudo mv redis-server /etc/init.d/redis-server
   $ sudo chmod +x /etc/init.d/redis-server
  $ sudo mv redis.conf /etc/redis.conf
  3.初始化用户和日志路径
$ sudo useradd redis
  $ sudo mkdir -p /var/lib/redis
  $ sudo mkdir -p /var/log/redis
  $ sudo chown redis.redis /var/lib/redis
  $ sudo chown redis.redis /var/log/redis
  4.启动redis server (每次运行cloudfoundry网站前都需要运行redis server)
  $ sudo /etc/init.d/redis-server start


Step8 在本地运行Cloud Foundry 网站

redis server必须处于运行状态中。(参考 $HOME/cloudfoundry-websites/www/README.md 文件)
  1.$ cd ~/cloudfoundry-websites/www
     第一次进入此路径,终端窗口会提示:
Gemset 'developers' does not exist, 'rvm gemset create developers' first, or append '--create' .
     运行 $ rvm gemset create developers,然后离开并重新进入~/cloudfoundry-websites/www
  2.$ bundle install
  3.$ ruby website.rb
  4.打开浏览器,输入网址 127.0.0.1:4567   
这样就可以看到运行于本机的Cloud Foundry 英文版网站首页了。如果想在本地运行中文版网站,只需将www改为cn重复Step8即可。



回复

使用道具 举报

stark_summer 发表于 2015-1-20 18:10:40
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条