2015-12-30 132 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