使用python自动化CloudFoundry部署

2024-04-29 09:27:48 发布

您现在位置: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/(任何语言)脚本来完成所有的工作。在

我尝试过google,最后得到了Pythoncloudfoundry模块,但还不清楚该继续下去。我的任务有没有API,比如访问EC2的boto。我尝试过用Python编写以下代码:

^{pr2}$

显示错误:

`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`

Tags: sampleredisapp应用程序cloudurlclifoundry
1条回答
网友
1楼 · 发布于 2024-04-29 09:27:48

首先,一个简单的问题是,您的cloudfoundry部署的实际API端点是什么?如果您使用的是cfCLI,那么在使用cf api API_ENDPOINT时,您放了什么?您可以运行cf target来查看当前API端点的设置。它应该有一个类似http或{}的方案。如果实际上要在Python代码中放入api.end.point,这就是为什么会收到所看到的错误消息。在

关于云计算交互自动化的一般问题,您有几个选择:

  1. 编写一个直接驱动cfCLI的shell脚本
  2. 用Ruby或Python这样的高级语言编写一个模块,它只需包装对CLI的调用
  3. 用更高级的语言编写一个模块,它包装对restfulapi的调用。在

以下是这些选项的细目:

  1. 如果您的语言列表(Ruby/Python/any-language)包括bash或纯sh之类的东西,那么您可以很容易地使用它来实现与CloudFoundry交互的“代码”。CLI设计为可编写脚本,不需要人工交互。这是最常见的方法,因为CLI是为这个用例而设计的。在
  2. 如果你想通过一种不同的语言来驱动交互(例如,可能是因为这是一个已经在使用另一种语言的大型项目的一部分),你当然可以这样做。CloudFoundry的全套最高级别系统测试都是在Golang完成的。如果您熟悉Golang项目的导航,可以查看:
  3. 您还可以围绕RESTful HTTP API构建一个包装器。生态系统中已经有好几种:
    • 这是一个关于官方支持的Java client的最新帖子
    • 社区中有人为了自己的目的开发了一个node.js client(但不确定它是否公开)
    • 以前有一个Ruby gem,但我相信它已经被弃用了,但是你也许可以找到它并从中寻找灵感

相关问题 更多 >