2015-09-22 62 views
0

我知道部署到應用引擎可以運行Maven的命令:Maven的在谷歌應用程序引擎的自動化部署

mvn appengine:update 

,然後會提示輸入授權碼,並啓動一個瀏覽器,以確認您要發佈到應用程序引擎上。我正在尋求完全自動化,以便它可以作爲maven的命令運行。我有appengine-maven-plugin安裝程序,但似乎沒有任何功能可跳過手動步驟。

有沒有人設法解決這個問題?我知道你可以從詹金斯部署正確的,但我們正在尋找可能是自動執行的解決方案,如果我們的詹金斯服務器關閉

感謝

回答

1

您重定向到瀏覽器的登錄和許可認證流程呼叫三足Oauth,因爲它涉及三個步驟:1)請求令牌2)登錄和同意3)帶令牌的API調用。

不涉及用戶登錄和同意的認證流程稱爲雙腿Oauth(服務器到服務器):1)使用私鑰簽名的令牌請求2)帶令牌的API調用。服務器到服務器身份驗證要求您設置具有適當權限(範圍)的服務帳戶。您還必須安全地分發該服務帳戶的私鑰,以便您可以簽署您的請求。查看OAuth2ServiceAccount instructions

Bitnami Jenkins圖片確實爲您提供了很多開箱即用的功能。當您設置Push-to-Deploy時,您將使用gcloud啓動一個實例。該啓動命令使用--scopes參數指定您希望圖像訪問的範圍,其中包括"https://www.googleapis.com/auth/appengine.admin"。這些範圍的權限被賦予默認項目服務帳戶。當Jenkins部署您的代碼時,服務帳戶證書通過Jenkins Google Oauth插件提供。

您可以構建另一個工具,以編程方式推送代碼。您將需要創建一個生成JSON Web令牌(JWT)的服務帳戶。請再次參閱Outh2ServiceAccount說明。 JWT是您的私人憑證,您需要找到一個安全的地方來存儲它。 App Engine SDK知道如何使用JWT獲取授權令牌。

在運行時期間,您可以將路徑作爲--service_account_json_key_file參數傳遞給JWT文件到appcfg.py。要通過Maven插件調用該參數,您必須使用-DadditionalParams =「 - service_account_json_key_file」,該參數可在github.com/GoogleCloudPlatform/appengine-maven-plugin/master的提示中找到。 (將在App Engine版本1.9.27中發佈,但您可以從Github上下載,直到那時)。

+0

這很有用,但我問是否有一種方法可以初始自動執行整個過程? – Fraser

+0

通過手動步驟獲得OAuth令牌後,您可以僅使用'mvn appengine:update'進行部署。但是你不能自動離開授權。你必須做一些設置。 –

相關問題