簡體   English   中英

使用python自動化CloudFoundry部署

[英]Automate CloudFoundry Deployment with python

我是Cloud Foundry的新手。 我想使用Python在Cloud Foundry中自動化應用程序部署和服務綁定。

為了在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並最終獲得了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`

首先,很快,您的Cloud Foundry部署的實際API端點是什么? 如果您使用的是cf CLI,那么在執行cf api API_ENDPOINT什么? 您可以運行cf target來查看當前API端點設置為什么。 它應該具有httphttps類的方案。 如果您實際上將api.end.point放入Python代碼中,這就是為什么您收到所看到的錯誤消息的原因。

關於有關自動化Cloud Foundry交互的一般問題,您可以選擇以下幾種:

  1. 編寫直接驅動cf CLI的shell腳本
  2. 用諸如Ruby或Python之類的高級語言編寫一個模塊,該模塊僅包裝對CLI的調用
  3. 用高級語言編寫一個模塊,該模塊包裝對Restful API的調用。

以下是這些選項的細分:

  1. 如果您的語言列表(Ruby / Python /任何語言)包括bash或pure sh類的東西,那么您可以輕松地使用它來獲得自動與Cloud Foundry進行交互的“代碼”。 CLI設計為可編寫腳本的,不需要人工干預。 這是最常見的方法,因為CLI是為此用例設計的。
  2. 如果您想通過另一種語言來推動交互(例如,可能因為這是已經使用另一種語言的較大項目的一部分),那么您當然可以這樣做。 用於Cloud Foundry的全套最高級別的系統測試是在Golang中完成的。 如果您熟悉導航Golang項目,則可以查看:
  3. 您還可以圍繞RESTful HTTP API構建包裝器。 生態系統中已經有幾個:
    • 這是有關官方支持的Java客戶端的最新主題
    • 社區中的某人一直在為自己的目的開發node.js客戶端 (盡管不確定它是否公開)
    • 曾經有一個Ruby寶石,但我認為它已被棄用,但是您可以找到它並查看它的想法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM