0

現在、AWS codepipelineで動作するJenkinsを取得しようとしています。私はEC2インスタンスでJenkinsを実行しています。しかし何らかの理由で、JenkinsはAWSのデフォルトの資格情報を読み込めません。私は、次のオプションを試してみました:チェーン内の任意のプロバイダからAWS資格情報を読み込むことができません - Jenkins&AWS codepipeline

  • AWSの資格情報を初期化コマンド 'をAWSが設定'
  • でAWS-資格情報がジェンキンス
  • にプラグインに
  • を使用して、エクスポートAWS_ACCESS_KEY_IDを実行= ....とAWS_SECRET_ACCESS_KEY = ....ジェンキンスに
  • は、資格情報が(そうである)が存在する場合は〜/ .aws /資格情報が、ファイルをチェックcliを
  • http://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-4.html)一緒ジェンキンスとcodepipelineの仕事をするためにAWSのドキュメント内のすべてのステップに従っ
  • 全ての工程を経
  • AWS
  • にユーザーがIAMインタフェースを介して資格情報を持っていることを確認してください

ジェンキンスサーバを数回再起動私の仕事では、ポーリング・ログには、次のような出力が得られます。

ERROR: Failed to record SCM polling for [email protected][job-name] 
com.amazonaws.AmazonClientException: Unable to load AWS credentials from any provider in the chain 
at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:131) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.getCredentialsFromContext(AmazonHttpClient.java:1028) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1048) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:948) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:661) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:635) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:618) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$300(AmazonHttpClient.java:586) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:573) 
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:445) 
at com.amazonaws.services.codepipeline.AWSCodePipelineClient.doInvoke(AWSCodePipelineClient.java:1785) 
at com.amazonaws.services.codepipeline.AWSCodePipelineClient.invoke(AWSCodePipelineClient.java:1761) 
at com.amazonaws.services.codepipeline.AWSCodePipelineClient.pollForJobs(AWSCodePipelineClient.java:1228) 
at com.amazonaws.codepipeline.jenkinsplugin.AWSCodePipelineSCM.pollForJobs(AWSCodePipelineSCM.java:240) 
at com.amazonaws.codepipeline.jenkinsplugin.AWSCodePipelineSCM.compareRemoteRevisionWith(AWSCodePipelineSCM.java:176) 
at hudson.scm.SCM.poll(SCM.java:408) 
at hudson.model.AbstractProject._poll(AbstractProject.java:1460) 
at hudson.model.AbstractProject.poll(AbstractProject.java:1363) 
at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:563) 
at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:609) 
at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:119) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

詳しい指示があれば教えてください。私は、HTTPSを使用しないので、構成ページの資格情報をジョブに直接渡すことを避けたいと考えています。

+0

IAM ROLEでEC2インスタンスを起動しましたか? –

+0

いいえ、私はJenkinsと既に存在するEC2インスタンスを持っていました。 – markvdlaan93

+0

IAMの役割を作成するようアドバイスされたドキュメントに従って。私たちのデプロイメントスタックでは、JenkinsのIAMロールを使用しています。問題のために、あなたの資格情報がjenkinsユーザーに利用できない場合があります。あなたがamazon Linuxを使用している場合。 jenkinsユーザーに変更し、aws-cli操作を試してください。 –

答えて

0

あなたの説明によると、あなたはjenkinsのためにIAMの役割を使用しています。あなたの問題については、jenkinsユーザーには資格情報がないかもしれません。

まず、Amazonのlinuxユーザーまたはjenkinsのユーザーを使用していることを確認してください。AmazonのLinuxユーザーが変更するよりも前に行ってください。

第2の点は、Jenkinsプロジェクトで使用されるポートへのインバウンド接続を許可するには、サーバーまたはAmazon EC2インスタンスでプロキシとファイアウォールの設定を構成する必要があることです。& JenkinsのAWS CodePipelineプラグインを、 AWS CodePipelineで使用します。

Ref。リンク:http://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-4.html

関連する問題