本文参考Cloud Foundry官方文档,及论坛整理。
第一步:安装 Cloud Foundry Integration Extension for Eclipse
在 Eclipse 中安装 Cloud Foundry Integration Extension
在 Eclipse 中,按照下列步骤安装 Cloud Foundry Integration Extension。
-
选择 Help > Eclipse Marketplace。
将打开一个显示插件和附加组件的面板。
-
在 Find 字段中,输入“cloud foundry”,然后单击 Go。
-
在搜索结果中,选择“Cloud Foundry Integration for Eclipse”,然后单击Install。
Eclipse 会检查资源和依赖项。
-
单击 Next 开始安装。
安装向导将引导您完成许可接受和安装步骤。
-
安装完成时,重新启动 Eclipse。
您现在便可以连接到 Cloud Foundry 云。
第二步:使用 Cloud Foundry Integration for Eclipse 部署应用程序和绑定服务
为 Cloud Foundry 目标定义一个新服务器
在 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 视图中。
将应用程序从 STS 或 Eclipse 部署到 Cloud Foundry
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 会更新应用程序配置文件,以访问所定义的 服务。绑定服务时不得运行应用程序。
-
如果应用程序正在运行,请停止应用程序:
- 在 Servers 视图中,右键单击应用程序名称,然后选择 Stop,或者
- 在 Cloud Foundry 服务器编辑器的 Applications 面板中,选择应用程序,然后单击 Stop 按钮。
-
在 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 环境变量
如果您的应用程序不能被自动配置,您必须提供相应的代码以从 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 所需的所有数据。
- hostname 和 host 具有相同的值,都为运行 MySQL 服务器的主机
- port 是 MySQL 服务器在主机上接受连接的端口
- user 和 username 是 MySQL 数据库用户的名称
- password 是用户的 MySQL 密码
- name是 MySQL 数据库的名称
请在 Cloud Foundry 入门站点的服务 部分中查看特定语言和框架下使用 MySQL 的示例。
第四步:连接数据库。
连接数据库有两种方法
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
选择数据库版本
7.校正数据库驱动地址
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
成功进入mysql操作界面(由于网速不给力,查询表内容,没反应了)