2015-12-30 89 views
0

我是Cloud Foundry的新手。我想在Cloud Foundry中使用Python自动化应用程序部署和服务绑定。使用python自动化CloudFoundry部署

对于部署在Cloud Foundry中我们将使用命令(Cloud Foundry的CLI)喜欢的应用程序:

cf push redis-sample-app 
cf create-service redis shared-vm service-example-redis 
cf bind-service redis-sample-app service-example-redis 
cf restage redis-sample-app 

现在我不想使用CLI为此,我只想写一个Python/Ruby /(任何语言)脚本,它将完成所有的事情。

我已经试过谷歌,并最终与Python cloudfoundry模块,但它不清楚继续下去。我的任务是否有任何API,如访问EC2的boto。我曾尝试下面的代码在Python:

from cloudfoundrty import CloudFoundryInterface 
cf=CloudFoundryInterface(target="api.end.point",username="myusername",password="mypwd") 
cf.login() 

它显示错误:

`File "C:\Python27\lib\site-packages\requests\models.py", line 398, in full_url 
    raise MissingSchema("Invalid URL %r: No schema supplied" % url) 
MissingSchema: Invalid URL u'users/kishorekumarnetala%40gmail.com/tokens': No schema supplied` 

回答

1

首先,快速的东西,什么是你的Cloud Foundry部署的实际API终点?如果您使用的是CLI,您在cf api API_ENDPOINT时做了什么?您可以运行cf target以查看当前API端点的设置。它应该有一个计划,如httphttps。如果你真的把api.end.point放在你的Python代码中,那就是为什么你会看到你所看到的错误信息。

至于你提到自动化Cloud Foundry的相互作用普遍的问题,你有几种选择:

  1. 写一个shell脚本,直接驱动cf CLI
  2. 更高层次的语言像写模块Ruby或Python,将呼叫简单地包装到CLI中
  3. 用一种将调用包装到restful API的高级语言编写模块。

下面是这些选项的细分:

  1. 如果你的语言列表(拼音/ Python /任何语言)包含的东西像bash或纯sh,那么你可以很容易地使用拥有“代码“可以自动与Cloud Foundry进行交互。 CLI被设计为可脚本化的,而不需要人工交互。这是最常用的方法,因为CLI是为此用例而设计的。
  2. 如果你想通过不同的语言来驱动交互(例如,也许因为这是一个已经使用不同语言的大型项目的一部分),你当然可以这样做。 Cloud Foundry的全套最高级别系统测试在Golang中做到了这一点。如果你熟悉导航Golang项目,你可以看看:
  3. 您也可以建立RESTful HTTP API周围的包装的package 。也有几个在那里已经在生态系统:
    • 这里是关于一位官员最近的线程支持Java client
    • 有人在社会上已经发展了自己的目的node.js client(不知道这是否是公众虽然)
    • 曾经有一个Ruby宝石,但我相信它已经过时,但你可以找到它,看看它的想法
+0

其实我的终点是https://开头的API。 run.pivotal.io和我只在我的Python脚本中使用该链接,但它显示相同的错误。 我听说首先我们必须拿认证令牌,我不知道如何让令牌访问。我只有选择使用Python,这是我的实际任务 – kishore

+0

'api.run.pivotal.io'仍然缺少一个方案。你需要添加'https'。 –

+0

在上面的评论中成为链接,我只在我的代码中使用https。但结果是一样的,实际上这就是API端点。 – kishore