分享

使用Caldecott直接访问 Cloud Foundry 数据服务!

xioaxu790 发表于 2014-6-18 16:53:31 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 7864
问题导读:
1、如何查看已创建的所有服务?
2、如何安装caldecott gem?





开发人员现在可以通过 Cloud Foundry,借助本地端口打开通向任意 Cloud Foundry 数据服务的通道了。您可以使用熟悉的客户端应用程序,直接分析、操作或传输绑定到 Cloud Foundry 应用程序的数据服务中包含的数据。当在运行 Cloud Foundry 的不同云(如 CloudFoundry.com 和 Micro Cloud Foundry)之间移动应用程序,以完成部署期间调试或对已部署的应用程序中的数据进行临时查询或修改时,此解决方案是导入和导出数据的理想之选。

这一新功能随预览版的 Cloud Foundry 命令行工具 (VMC) 一起提供。它的底层是一个简单的 Ruby 应用程序,名为 Caldecott(以加利福尼亚的 Caldecott 隧道命名),它可以部署到您的 CloudFoundry.com 帐户,从而连接到帐户中的服务。Caldecott 目前只是预览版;在未来几周内,工作团队会继续努力,以提升功能和性能,增强稳定性。Caldecott 提供了一个 HTTP 终端,可方便本地环境中的端口转发。VMC 包含有内置脚本,可在本地环境中运行一些流行客户端软件,还可自动连接到指定的服务,或只是创建指向服务的连接,以便于您使用所选的任意客户端软件进行连接。下面,我们来看看它的工作原理。

首先,使用以下命令将 Cloud Foundry 命令行工具 (VMC) 更新到最新的预览版:
  1. gem install vmc --pre
复制代码


可以通过下面的命令验证版本正确:
  1. vmc -v
复制代码


它应显示版本为 0.3.14.beta.4 或更高版本。

您还需要 caldecott gem,可使用以下命令安装:
  1. gem install caldecott
复制代码


请注意,caldecott gem 目前需要“eventmachine”gem,而 eventmachine 又需要本机编译。我们正努力对此进行简化。(译注:如果是在Windows下使用Ruby Console,需要配置Dev-kit及Path参数,很多人在这里遇到问题,Ruby社区有一篇文章,可供参考:http://rubyer.me/blog/134/

第一步是确保将您要连接的 Cloud Foundry 实例设为目标,然后登录。如果您对 VMC 不熟悉,可参阅“入门指南 – 命令行 (VMC) 用户”。

接下来,检查您拥有的所有服务:
  1. vmc services
复制代码



在“已配置的服务”(Provisioned Services)部分下,您将看到已创建的所有服务。例如,以下是我的服务的输出:
  1. =========== Provisioned Services ============
  2.     +------------------+------------+
  3.     | Name             | Service    |
  4.     +------------------+------------+
  5.     | mongodb-12345    | mongodb    |
  6.     | mysql-12345      | mysql      |
  7.     | postgresql-12345 | postgresql |
  8.     | redis-12345      | redis      |
  9.     +------------------+------------+
复制代码



现在,通过下面的简单命令可以连接到列出的任何服务:
  1. vmc tunnel <servicename> [--port]
复制代码



端口是一个可选参数,允许定义所需的特定端口号。默认情况下,VMC 将自动选择 10000 范围内的可用端口。服务名称参数也是可选的,您可以使用不带任何参数的命令,通过交互方式从列表中选择服务,以建立连接。
  1. vmc tunnel
复制代码



例如,可输入以下命令连接到上面列表中的 PostgreSQL 服务:
  1. vmc tunnel postgresql-12345
复制代码



VMC 将首先确定现有的 Caldecott 应用程序实例是否已部署,如果没有,则部署新的应用程序。
  1. Trying to deploy Application: 'caldecott'.
  2.     Create a password:
复制代码


创建通道时,系统会提示输入密码。初次部署应用程序时,需要提供新密码,这样 VMC 才能确保将来能够安全地连接到 Caldecott 应用程序实例。要建立更多服务连接,需要提供最初为确保安全性而创建的密码。创建密码后,您将看到以下进度输出。
  1. Uploading Application:
  2. Checking for available resources: OK
  3. Processing resources: OK
  4. Packing application: OK
  5. Uploading (1K): OK
  6. Push Status: OK
  7. Binding Service [postgresql-12345]: OK
  8. Staging Application: OK
  9. Starting Application: OK
  10. Getting tunnel connection info: .OK
复制代码


您可以看到,VMC 上载并启动了 Caldecott 应用程序,并将指定的服务绑定到了此应用程序实例。在连续的 VMC 通道命令调用中,不需要创建新的应用程序实例。相反,现有的实例将停止,指定的服务将绑定到应用程序,然后重新启动同一 Caldecott 应用程序。

输出的下一部分将显示连接到服务所需的凭据。这些凭据最初是为您配置服务时,由云控制器(Cloud Controller)自动生成的。Cloud Foundry 的暂存代码会将这些凭据自动插入到您的应用程序的配置中,以连接到服务。
  1. Service connection info:
  2. username : ua76003139485469989d57b22f9cb83xx
  3. password : p8214ebd2a7254698913e01c86a4432xx
  4. name : da281fa2162f947028876d0500ae31cxx
复制代码



如果是数据库服务,将显示用户名、密码以及数据库名称。最后,当通道建好后,VMC 将建议启动您的执行路径中已有的已知客户端,或允许使用您选择的客户端应用程序连接到本地端口。

对于 Postgres 示例,将显示以下提示:
  1. Starting tunnel to postgresql-12345 on port 10000.
  2. 1: none
  3. 2: psql
  4. What client would you like to start?:
复制代码


输入 1,可通过您自己的客户端应用程序以及先前显示的凭据建立连接;输入 2,可自动启动客户端应用程序并传递凭据。如果选择后者,VMC 将自动启动客户端(在这里是 psql)。
  1. What client would you like to start?: 2
  2. Launching 'PGPASSWORD='p8214ebd2a7254698913e01c86a4432xx' psql -h localhost -p 10001 -d da281fa2162f947028876d0500ae31cxx -U ua76003139485469989d57b22f9cb83xx -w'
  3. psql (9.0.4)
  4. Type "help" for help.
  5. da281fa2162f947028876d0500ae31cxx=> \d
  6.                      List of relations
  7. Schema | Name  | Type  |               Owner
  8. --------+-------+-------+-----------------------------------
  9. public | hotel | table | ua76003139485469989d57b22f9cb83xx
  10. da281fa2162f947028876d0500ae31cxx> select * from hotel;
  11.   1 | 3555 S. Ocean Drive                    | Hollywood           | USA           | Westin Diplomat                | 199.00 | FL        | 33019
  12.   2 | 890 Palm Bay Rd NE                     | Palm Bay            | USA           | Jameson Inn                    |  60.00 | FL        | 32905
  13.   3 | The Cottage, Southampton Business Park | Southampton         | UK            | Chilworth Manor                | 199.00 | Hants     | SO16 7JF
  14. ...
复制代码


或者,您也可以提供期望的客户端,以在调用通道命令时执行,从而跳过提示:
  1. vmc tunnel postgresql-12345 psql
复制代码


此时,您可以选择查看、修改或从服务导出数据。

没找到任何评论,期待你打破沉寂

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

本版积分规则

关闭

推荐上一条 /2 下一条