本文参考Cloud Foundry官方文档,及论坛整理。
第一步:安装 Cloud Foundry Integration Extension for Eclipse
在 Eclipse 中,按照下列步骤安装 Cloud Foundry Integration Extension。
第二步:使用 Cloud Foundry Integration for Eclipse 部署应用程序和绑定服务
在 STS 或 Eclipse 中,您需要定义一个新服务器来表示 Cloud Foundry 目标, 然后将应用程序部署到其中。
按照下面的步骤定义新服务器。
选择 Window > Show View > Servers。
单击新服务器向导或右键单击 Servers 视图中的空白区域,然后选择 New > Server。
将会启动 Define a New Server 向导。
展开 VMware 文件夹,选择 Cloud Foundry。
指定要在服务器名称中创建的 Cloud Foundry 服务器实例的显示名称。服务器主机名应 保持 localhost 不变。单击 Next。
选择要从 URL 列表中设置的 Cloud Foundry 目标。
VMware Cloud Foundry。VMware 托管的开放平台即服务。
本地云。VMware Cloud Application Platform (VCAP) 的本地安装。
Microcloud。Micro Cloud Foundry 虚拟机。
如果已选择 Microcloud,请输入 在 http://cloudfoundry.com/micro 中为 Micro Cloud Foundry 注册的域名以及描述性名称。
单击 OK。
输入 Cloud Foundry 目标的电子邮件地址和密码。
对于 VMware Cloud Foundry 目标,电子邮件必须 预先在网站上进行注册。CloudFoundry.com 注册按钮允许用户预先注册电子邮件帐户。
对于本地云或 Microcloud 目标,请使用 已注册的电子邮件地址,或输入要注册的新电子邮件和密码,然后单击 Register Account…。
单击 Validate Account 以测试帐户在 目标 Cloud Foundry 上是否有效。
单击 Finish。
新的 Cloud Foundry 目标会显示在 Servers 视图中。
Cloud Foundry Integration Extension 使用 Eclipse Web Tools Project (WTP) 服务器基础架构,该架构用于将 Java Web 应用程序部署到远程 服务器。
部署应用程序包括三个步骤。
仅当应用程序使用 Cloud Foundry 服务(如 MySQL 或 vFabric Postgres 数据库或 RabbitMQ 消息传递)时才需要执行后两个步骤。
在 STS 或 Eclipse 中,选择 Windows > Show View > Servers 以显示 Servers 视图。
当前部署的应用程序(如果存在)将在服务器下方列出。
要部署应用程序,请将其拖动到 Servers 视图中的目标 Cloud Foundry 服务器中。
或者,您也可以双击该服务器,将会打开 Cloud Foundry 编辑器,允许用户 将应用程序拖放到 Applications 选项卡中。
Cloud Foundry Integration Extension 会检查应用程序以确定应用程序类型并验证 是否已将应用程序部署到选定的 Cloud Foundry 服务器。如果是的话,它会打开一个应用程序详细信息向导,用户可以在其中 配置应用程序和绑定可选的服务。支持的应用程序类型包括 Spring、Grails、Lift 和 Java Web。
如果 Integration Extension 未正确识别应用程序的框架,则根据需要更改应用程序的名称, ,选择正确的应用程序类型,然后 单击 Next。
注意: 此处的应用程序名称仅用于识别 要管理的应用程序。应用程序 URL 中向用户显示的 名称在该向导的下一个页面中设置。
编辑已部署的 URL,并根据需要更改预留内存。
在目标 Cloud Foundry 中,已部署的 URL 必须是唯一的。
如果需要将服务绑定到应用程序,请单击 Next 以在部署之前先将它们绑定,或取消选择Start application on deployment 并在部署后通过 Cloud Foundry 服务器编辑器绑定服务。
单击 Finish,虽然是可选项,但是用户也可以选择 Next 在部署前先绑定服务。
应用程序部署完毕。如果选择 Start application on deployment,将会启动该选项,并可通过映射的 URL 访问。如果使用调试支持部署到 microcloud 或本地云,将会显示在 调试模式下启动应用程序的另一个选项。
如果单击 Next,则可以将现有服务绑定到应用程序,或者可以定义其他服务,然后进行绑定。
部署后,在 Servers 视图中,双击该应用程序打开编辑器并显示应用程序统计信息以及 启动、停止、重新启动、更新并重新启动应用程序的控件,还可以更改应用程序的配置和绑定服务。
必须先定义服务,然后才能将服务绑定到已部署的应用程序。Cloud Foundry Integration Extension 可从 目标 Cloud Foundry 中获取一个可用服务目录。定义服务后,可以将其绑定到 应用程序。部署期间,可以通过应用程序详细信息向导 将服务绑定到应用程序,如果应用程序已停止运行,也可以在部署后通过 Cloud Foundry 服务器编辑器进行绑定。
按照下面的步骤在编辑器中定义服务。
在 Servers 视图中,双击应用程序名称。
Applications 选项卡显示有关 Cloud Foundry 目标上应用程序的详细信息。
在 Services 部分中,单击 Add service 图标。
为新服务提供名称,并选择服务类型。
Type 列表包含 目标 Cloud Foundry 上所有可用的服务类型。
单击 Finish。
插件将从 Cloud Foundry 请求服务,新服务 会出现在 Services 部分中。
当您将服务绑定到应用程序时,Cloud Foundry Integration Extension 会更新应用程序配置文件,以访问所定义的 服务。绑定服务时不得运行应用程序。
如果应用程序正在运行,请停止应用程序:
在 Applications 面板中,选择要为其绑定 服务的应用程序。
在 Services 面板中选择要绑定的服务,然后将其拖动到 Application Services 面板中。
单击 Start 按钮。
Cloud Foundry 编辑器中的 Applications 选项卡允许用户修改应用程序详细信息,如内存、运行的实例数、映射的应用程序 URL,以及启动、停止、重新启动、更新和重新启动应用程序。
用户可以重新启动应用程序,而不需要通过 Restart 按钮或 Servers 视图中的上下文菜单操作发布应用程序中的更改,或更新已部署应用程序中的更改并使用 Update and Restart 选项重新启动应用程序。
Update and Restart 会以增量方式逐步发布应用程序中的本地更改,并进行优化,以仅推送 自上次发布以来已经更改的资源。
停止和启动一个应用程序表明已执行一次完整的发布。
如果不需要数据库服务,现在你就可以利用eclipse的Cloud Foundry插件完成部署。
第三步:关于 Cloud Foundry MySQL 服务的介绍
MySQL 是常用的开源关系数据库,它被作为一项服务在 Cloud Foundry 上被提供。当部署 Rails、Grails 或 Spring 应用程序至 Cloud Foundry 时,vmc 或 STS 可能自动配置您的应用程序以使用 Cloud Foundry 实例。如果您的应用程序不能被自动配置,您可从 VCAP_SERVICES 环境变量中获得您的应用程序连接数据库所需的信息。
如果您的应用程序不能被自动配置,您必须提供相应的代码以从 VCAP_SERVICES 变量中获得连接信息,该变量已在应用程序的 Cloud Foundry 环境中被设置。此变量的内容是一个 JSON 文件,其中包含一个与应用程序捆绑的所有配置服务的列表。
以下为一个作为示例 JSON 文件(出于可读性考虑而重设了格式),该文件来自带有两个已配置 MySQL 服务的 Cloud Foundry 应用程序的环境。
{"mysql-5.1":[ { "name":"mysql-4f700", "label":"mysql-5.1", "plan":"free", "tags":["mysql","mysql-5.1","relational"], "credentials":{ "name":"d6d665aa69817406d8901cd145e05e3c6", "hostname":"mysql-node01.us-east-1.aws.af.cm", "host":"mysql-node01.us-east-1.aws.af.cm", "port":3306, "user":"uB7CoL4Hxv9Ny", "username":"uB7CoL4Hxv9Ny", "password":"pzAx0iaOp2yKB" } }, { "name":"mysql-f1a13", "label":"mysql-5.1", "plan":"free", "tags":["mysql","mysql-5.1","relational"], "credentials":{ "name":"db777ab9da32047d99dd6cdae3aafebda", "hostname":"mysql-node01.us-east-1.aws.af.cm", "host":"mysql-node01.us-east-1.aws.af.cm", "port":3306, "user":"uJHApvZF6JBqT", "username":"uJHApvZF6JBqT", "password":"p146KmfkqGYmi" } } ]}
使用访问操作系统环境变量的编程语言工具检索 VCAP_SERVICES 的值。例如,在 Java 中为 java.lang.System.getenv("VCAP_SERVICES"),在 Ruby 中为 ENV['VCAP_SERVICES']。在 Node.js (JavaScript) 中使用 process.env.VCAP_SERVICES,在 Python 中使用 os.getenv("VCAP_SERVICES")。
使用特定语言的 JSON 库或模型解析该值和访问您所需的信息。
name 键值可被用于区别多个 MySQL 实例;它在您使用 vmc 或 STS 创建实例时被设置。
credentials 对象包含通过一个驱动程序或库连接 MySQL 所需的所有数据。
请在 Cloud Foundry 入门站点的服务 部分中查看特定语言和框架下使用 MySQL 的示例。
第四步:连接数据库。
连接数据库有两种方法
一是根据官网的说明(http://blog.cloudfoundry.com/2012/07/31/cloud-foundry-integration-for-eclipse-now-supports-tunneling-to-services/).
1.打开VMare Cloud Foundry服务器的配置界面,在Services列表中选择一个服务(如果没有点击Add Service)右击选 择Open Tunnel.
2 之后弹出数据库连接信息,将连接信息复制到记事本。
3 在eclipse中打开Data Source Explorer 视图(Window-->Show-->Data Source Explorer)
4 新建一个mysql数据库连接
6 第一次使用的时候新建一个连接没有连接信息 需要点击New Driver Definition
选择数据库版本
8.填写刚才复制的数据库连接信息
9. 点击OK 返回连接界面 Finsh 连接完成。
10.可以在这里进行数据库操作
第二种
连接方式有点麻烦是根据(http://cnblog.cloudfoundry.com/2012/07/07/200/) 完成的
在操作之前 需要
在http://rubyinstaller.org/downloads 下载Ruby 1.9.2-p290和DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe.
在Oracle官网http://www.mysql.com/products/community/下载Mysql数据库。
1 安装Ruby 1.9.2(安装ruby 过程 选择添加到win7环境变量path中,最好目录是英文,别带空格.)
2 安装Devkit (http://rubyer.me/blog/134/)
DevKit 是windows平台下编译和使用本地C/C++扩展包的工具。它就是用来模拟Linux平台下的make, gcc, sh来进行编译。注:这个方法目前仅支持通过RubyInstaller安装的Ruby,如果不是建议你重新安装。安装方法:双击下载的7z文件,指定解压路径,路径中不能有空格。如C:\DevKit,这个路径就是<DEVKIT_INSTALL_DIR>。
1 | > cd <DEVKIT_INSTALL_DIR> |
2 | > ruby dk.rb init |
3 | #生成config.yml,这里会检查将要添加DevKit支持的Ruby列表,只支持通过RubyInstaller安装的Ruby |
4 | #如果这里列出的Ruby与你的要求不符,可以手动修改 |
5 | > ruby dk.rb review #检查要添加DevKit支持的Ruby列表是否有误,可以略过 |
6 | > ruby dk.rb install |
7 | [INFO] Updating convenience notice gem override for 'C:/Ruby192' |
8 | [INFO] Installing 'C:/Ruby192/lib/ruby/site_ruby/devkit.rb' |
检查是否安装成功
1 | > gem install rdiscount --platform=ruby |
2 | Fetching: rdiscount-1.6.8.gem (100%) |
3 | Temporarily enhancing PATH to include DevKit... |
4 | Building native extensions. This could take a while... |
5 | Successfully installed rdiscount-1.6.8 |
6 | 1 gem installed |
7 | Installing ri documentation for rdiscount-1.6.8... |
8 | Installing RDoc documentation for rdiscount-1.6.8... |
如果能安装rdiscount成功说明安装DevKit成功。
3 安装MySql 数据库.(在Win7 环境变量Path中添加MySlq bin 地址 如D:\Program Files\MySQL\MySQL Server 5.5\bin)
4 安装vmc gem (http://cndocs.cloudfoundry.com/tools/vmc/installing-vmc.html)
在Window 上打开Ruby的命令提示符窗口执行 gem install vmc 成功之后测试下vmc指令是否可用
5 安装 caldecott gem 在命令提示符窗口执行 gem install caldecott
6 安装 tunnel-vmc-plugin gem 在命令提示符窗口执行 gem install tunnel-vmc-plugin
7 操作Cloud Foundry 数据库
列出你所有的数据库服务 vmc services
vmc services 没有数据库 那是因为你没有建立数据库服务,我觉得最简单的方式就是在eclipse插件中建立数据库服务 参考cloud foundry的文档 ,也可以根据vmc的指令创建数据库服务http://cndocs.cloudfoundry.com/tools/vmc/vmc-quick-ref.html(你创建的是数据库服务名,不是你的数据库名)。
连接数据库服务 vmc tunnel <dzhai 数据库服务名>
选择哪种连接方式 选择2