您的位置:首页 > 运维架构

在OpenStack上使用dev_setup部署CloudFoundry

2013-04-01 10:27 363 查看
在OpenStack上部署CloudFoundry,和其它环境没有根本区别,有的可能是方便一点。这里以我们的线上环境部署为例,目前部署使用到了4台虚拟机,分别如下:
Instance Name   IP 地址                           Role

rest            10.0.0.14 (132.126.35.165)       rest

dea0            10.0.0.53                        dea

dea1            10.0.0.40                        dea

service0        10.0.0.49                       service


配置至少 1G 内存,系统这里使用 Ubuntu 12.04 64 位(官方推荐Ubuntu 10.04)


一. 单结点安装

(这里进行单结点,是为了降低难度, 熟悉安装过程及测试。线上环境我们用的是多结点安装的方式)

不建议使用 root 账号部署

1. 安装一些最基础的软件
sudo apt-get -y update

sudo apt-get -y install build-essential git-core curl


2. 安装一些特定软件

(因为我们用的不是官方推荐的Ubuntu 10.04,而是Ubuntu 12.04所以得增加这一步,否则这一步可以省略)
sudo apt-get -y install gcc-4.4 gcc-4.4-base  cpp-4.4 libssl0.9.8

sudo apt-get -y install libncurses5-dev

sudo apt-get -y install xsltproc fop libncurses-ruby libncurses5 libncurses5-dev ruby-ncurses

sudo apt-get -y install unixodbc unixodbc-dev freeglut3-dev libwxgtk2.8-dev

sudo apt-get -y install libalien-wxwidgets-perl

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 50


sudo apt-get -q -y install libpcre3-dev=8.12-4

3. 下载安装脚本的源代码及其依赖(请保持网络连通及网速):
git clone git://github.com/cloudfoundry/vcap.git


4. 使用默认的配置进行安装
~/vcap/dev_setup/bin/vcap_dev_setup


5. 安装成功后显示信息大概如下
Deployment Info
***************
* Status: Success
* Config files: /home/ubuntu/cloudfoundry/.deployments/devbox/config
* Deployment name: devbox
* Note:
* If you want to run ruby/vmc please source the profile /home/ubuntu/.cloudfoundry_deployment_profile
* If you want to run cloudfoundry components by hand please source the profile /home/ubuntu/.cloudfoundry_deployment_local
* Command to run cloudfoundry: /home/ubuntu/cloudfoundry/vcap/dev_setup/bin/vcap_dev start


(如有报错,请确保之前需要的软件已成功安装,网络正常;查看报错信息,自行google;当然也可以留言告诉我)

6. 启动 根据上一步的成功提示信息,输入启动命令
/home/ubuntu/cloudfoundry/vcap/dev_setup/bin/vcap_dev start


就可以启动各个组件,并且会提示它们的状态是 "RUNNING" 。以下是一些常用的命令
/home/ubuntu/cloudfoundry/vcap/dev_setup/bin/vcap_dev status  # 查询进行状态
/home/ubuntu/cloudfoundry/vcap/dev_setup/bin/vcap_dev restart # 重启
/home/ubuntu/cloudfoundry/vcap/dev_setup/bin/vcap_dev stop    # 停止


7. 访问

正确设置 DNS 后,可以通过 api.vcap.me 访问。


二, 多结点安装

有了单结点安装的经验,现在我们可以进行多结点安装了,下面是我们线上环境的部署过程

1. 和单结点安装的第1,2,3步一样:

下载基本的软件

下载使用Ubuntu 12.04特定的软件

下载安装脚本及其依赖(可以复制单结点安装时下载好的文件,以节省时间)

2. 配置

多结点和单结点不同的只是我们的配置文件。

单结点安装可以参考路径 "~/vcap/dev_setup/deployments/" 下的 devbox.yml (默认配置)。

多结点部署同样可以参考路径 "~/vcap/dev_setup/deployments/sample" 下的配置示例。

为了部署方便,以及避免不必要的麻烦,建议在不同结点上用相同的配置文件名(内容不同)。我统一把它们命名为 deploy.yml,放在 "~/vcap/dev_setup/deployments/" 路径下。 下面是实际部署配置文件(仅供参考)

rest 结点:

---

deployment:

name: "deploy"

jobs:

install:

- nats_server

- router

- stager

- ccdb

- cloud_controller:

builtin_services:

- mysql

- redis

- mongodb

- rabbitmq

- postgresql

- vblob

- health_manager

- uaa

- uaadb

- redis_gateway

- mysql_gateway

- mongodb_gateway

- rabbitmq_gateway

- postgresql_gateway

- vblob_gateway

(说明:上面的 "builtin_services" 是我们希望支持的服务,可以根据需要自行增减;router, stager 等组件若云平台规模比较大可以单独安装)

dea 结点:

---

# Deployment

# ----------

deployment:

name: "deploy"

jobs:

install:

- dea:

runtimes:

- ruby18

- ruby19

- ruby193

- java

- java7

- node

- node06

- node08

installed:

- nats_server:

host: "10.0.0.14"

port: "4222"

user: "nats"

password: "nats"

(说明:上面的 "runtimes" 是我们希望支持的语言,可以根据需要自行增减;"install" 是本结点要安装的组件,"installed" 是其它结点安装的组件,"nats_server" 安装在 rest 结点,请正确填写这里的 "host,port" 等信息)

在这里我们和官方一样,不支持 Python, PHP, Erlang, 请把 "rest" 结点上的 "~/vcap/dev_setup/cookbooks/cloud_controller/templates/default/runtimes.yml.erb" 文件里的不需要的 runtime 注释掉。

service 结点:

---

deployment:

name: "deploy"

jobs:

install:

- mysql_node:

index: "0"

- redis_node:

index: "0"

- mongodb_node:

index: "0"

- rabbitmq_node:

index: "0"

- postgresql_node:

index: "0"

- vblob_node:

index: "0"

installed:

- nats_server:

host: "10.0.0.14"

port: "4222"

user: "nats"

password: "nats"

(说明:"install" 是我们在本结点安装的服务(组件),"installed" 里的 "host,port" 等信息请正确填写)

3. 运行安装脚本

命令和单结点安装差不多,不过在这里我们需要指定使用自己的 配置文件及使用域名。 在不同结点,实际安装运行命令:
~/vcap/dev_setup/bin/vcap_dev_setup -c ~/vcap/dev_setup/deployments/deploy.yml -D your-example.com # 请更改域名!


(-c 选项指定配置文件,-D 选项指定使用域名,-p 选项可指定使用代理)

4. 启动

建议先启动 rest 结点,再启动其它结点,命令:
/home/ubuntu/cloudfoundry/vcap/dev_setup/bin/vcap_dev -n deploy start


"查询运行状态,重启,停止" 的命令在单结点安装时已经提到,不再重复。

安装原因:

1.缺少组件,特别是一些重要组件。因为官方开发速度较快,以及随着时间过去本文档可能已过时。

2.配置存在错误,特别要注意NATS所在结点host, port, password.

3.配置文件里都在deployment:,里面的name: 选项请保持一致!

4。根据经验:有很多问题都是缺少依赖的包或者网络问题。前者一般根据报错信息或google都能解决;后者由于“墙”,你懂的。还有就是:有时候重复运行部署脚本能神奇的自我修复


三, 扩展

对 dea 的扩展:在成功安装好一个 DEA 结点后(前面提到的 "dea0" ),我在OpenStack 上将它保存为 "快照",然后用它新建一台虚拟机,重新启动即可完成扩展。 对 dea 的扩展,如果不更改配置文件(可以不更改),按照此方法即可完成扩展。

对 server 的扩展:需要更改配置文件(必需更改)。参考上面给出的配置文件,增加一个结点,也就是将文件内的 index: "0" 加一。重新启动即可完成扩展。

其它:router, stager 等组件若云平台规模比较大可以单独安装。除了配置文件里的 "install" 需要更改并保证"nats_server"项正确外,安装启动过程基本相同。


四, 最后

1. 建议在 rest 结点,更改 /etc/hosts 文件(这里不要复制+粘贴),增加
172.32.0.8 api.your-example.com172.32.0.8 uaa.your-example.com
172.32.0.8 login.your-example.com

2. 访问your-example.com:9022 或者your-example.com:8080
如果显示正常,部署成功。

3. 正确 DNS 后,可以访问 api.your-example.com 看到
Welcome to VMware's Cloud Application Platform


4. 可以通过如下命令绑定,然后创建应用

(提示:新版CloudFoundry命令行接口vmc, 存在兼容问题。vmc 请务必使用 0.3.23 版本。)

更新:vmc版本变化较大,且存在上下不兼容现象。0.3.23为个人建议版本,就尽量选用“高版本且可用”的版本!
vmc _0.3.23_ target api.your-example.com


(因为 80 端口被封 your-example.com 不能从外部访问,所以现在不能使用,该问题正在解决中~)

5. 现在可以以下命令
vmc _0.3.23_ target api.your-example.com:9022 # 绑定CloudFoundry实例
vmc push # 提交应用

(提交应用过程中 “Application Deployed URL” 不能使用默认的,请填写为 app-name.your-example.com 的形式)


绑定并创建应用,但同样因为 80 端口问题,从外部不能访问此应用。

6. 至于"开发者如何使用我们的CloudFoundry云平台?",建议参考官方文档 http://cndocs.cloudfoundry.com/getting-started.html 在这里不再赘述。

7. 默认CloudFoundry是没有Web控制台,你可以使用 https://github.com/frodenas/cf-console 。很方便

五,补充

CloudFoundry 现在没有发行版本的说法,无论是 dev_setup 还是BOSH部署,都是从 github.com或相关网站 上直接拿代码,所以部署过程比较容易失败。

建议从以下方面解决错误:

检查配置文件,确保没有错误
查看报错信息
自行 google, 一般都能解决
再次运行部署脚本
确保网速以网络连通(包括'墙'的问题)
检查日志

配置文件一般在 ~/cloudfoundry/.deployments/deploy/config/ 目录下,根据需要修改的话,一般重启即可生效。

日志文件一般在 ~/cloudfoundry/.deployments/deploy/log/ 目录下,若云平台有异常(如:部署成功但云平台却不能正常运行)可以在此查看分析问题。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: