2016-08-23 59 views
1

AWS文檔描述了使用瀏覽器你Github上如何進行身份驗證,而且您是當前登錄到Github上與權限要從部署存儲庫的有效用戶:將AWS CodeDeploy連接到Github而不使用我的Github用戶?

http://docs.aws.amazon.com/codedeploy/latest/userguide/github-integ.html#github-integ-behaviors-auth

有什麼如何設置CodeDeploy而無需鏈接我的用戶和瀏覽器?我很樂意在每個存儲庫和AWS API調用上使用webhook,但如果必須的話,我會創建一個Github的「服務用戶」。

更多的例子: http://blogs.aws.amazon.com/application-management/post/Tx33XKAKURCCW83/Automatically-Deploy-from-GitHub-Using-AWS-CodeDeploy

我很想在我的回購使用網絡掛接,或者設置他們自己,不是允許AWS訪問每個庫在我的Github上的帳戶。

回答

1

在這一點上,似乎沒有辦法在瀏覽器中執行OAuth流程。如果您擔心將整個Github帳戶開放至亞馬遜,那麼創建服務用戶可能是最好的方法,不幸的是,似乎該用戶仍然需要通過管理訪問您的回購站來設置集成。

-2

您可以使用此bash命令

從本地到遠程

rsync --delete -azvv -e "ssh -i /path/to/pem" /path/to/local/code/* [email protected]:/path/to/remote/code

從遠程到本地

rsync --delete -azvv -e "ssh -i /path/to/pem" [email protected]:/path/to/remote/code/* /path/to/local/code

rsync檢查文件版本和做更新文件那需要更新

+0

你確定你回答正確的問題? – Martin

+0

是的。他要求在沒有github用戶的情況下進行部署 –

+0

我問如何在沒有Github用戶的情況下使用AWS CodeDeploy產品,同時仍然使用他們提供的與Github的集成。在這種情況下,你的回答沒有意義。 – Martin

0

CodeDeploy和Github集成基於Github Oauth工作。因此,要使用CodeDeploy和Github集成,您必須使用您的github帳戶信任CodeDeploy github應用程序。目前,這種集成只能在瀏覽器中使用有效的github帳戶,因爲CodeDeploy應用程序將始終重定向回CodeDeploy控制檯,以驗證&完成OAuth身份驗證過程。

0

經過更多研究,我意識到我的第一個答案是錯誤的,您可以使用AWS CLI使用Github OAuth令牌創建CodePipeline。然後,您可以從那裏插入CodeDeploy部署。下面是一個例子配置:

{ 
    "pipeline": { 
     "roleArn": "arn:aws:iam::99999999:role/AWS-CodePipeline-Service", 
     "stages": [ 
      { 
       "name": "Source", 
       "actions": [ 
        { 
         "inputArtifacts": [], 
         "name": "Source", 
         "actionTypeId": { 
          "category": "Source", 
          "owner": "ThirdParty", 
          "version": "1", 
          "provider": "GitHub" 
         }, 
         "outputArtifacts": [ 
          { 
           "name": "MyApp" 
          } 
         ], 
         "configuration": { 
          "Owner": "myusername", 
          "Repo": "myrepo", 
          "Branch": "master", 
          "OAuthToken": "**************" 
         }, 
         "runOrder": 1 
        } 
       ] 
      }, 
      { 
       "name": "Beta", 
       "actions": [ 
        { 
         "inputArtifacts": [ 
          { 
           "name": "MyApp" 
          } 
         ], 
         "name": "CodePipelineDemoFleet", 
         "actionTypeId": { 
          "category": "Deploy", 
          "owner": "AWS", 
          "version": "1", 
          "provider": "CodeDeploy" 
         }, 
         "outputArtifacts": [], 
         "configuration": { 
          "ApplicationName": "CodePipelineDemoApplication", 
          "DeploymentGroupName": "CodePipelineDemoFleet" 
         }, 
         "runOrder": 1 
        } 
       ] 
      } 
     ], 
     "artifactStore": { 
      "type": "S3", 
      "location": "codepipeline-us-east-1-99999999" 
     }, 
     "name": "MySecondPipeline", 
     "version": 1 
    } 
} 

您可以使用以下命令創建的管道:

aws codepipeline create-pipeline --cli-input-json file://input.json 

確保Github上的OAuth令牌有權限admin:repo_hookrepo

參考:http://docs.aws.amazon.com/cli/latest/reference/codepipeline/create-pipeline.html

+0

雖然我認爲這會在這一點上使用不同的產品。看起來答案仍然是「使用AWS CodeDeploy,你不能。」 – Martin

相關問題