2016-04-01 21 views
0

OKこれがシナリオです。Jenkins Packer AWS資格情報の検証

AWSにJenkins Slaveがあり、EC2リソースを作成できる役割が付いています。私はPacker github issueリストを介してその役割を見つけました。ここにはrole

スレーブで構築しようとしているPackerプロジェクトがあります。ビルドが開始されると、失敗します。

[1; 31mBuild 'amazon-ebs' errored:NoCredentialProviders:チェーン内に有効なプロバイダがありません。推奨されていません。 >アマゾン-EBS - :NoCredentialProviders:チェーンに有効なプロバイダ詳細メッセージングのために がaws.Config.CredentialsChainVerboseErrors [0メートル

を参照してください==>一部が正常に完了し、エラーを有していたビルドします。推奨されていません。私はAWSは、configureを実行し、実際の資格情報に入れ、この明らかに動作しますが、私はそれを避けるためにしようとしている場合は詳細メッセージングのために はaws.Config.CredentialsChainVerboseErrors

を参照してください。インスタンスに適切な役割が割り当てられていることを確認しました。私は、コマンドラインからこの役割に正しく切り替えることができることも確認しました。

私が見逃しているように見えるのは、インスタンスとパッカーがロールを「iam_instance_profile」と指定して関連付けられたロールで、これが失敗する理由です。

どのような考えですか?

+0

使用しているPackerの '.json'設定ファイルを提供できますか? – Castaglia

+0

私はこれをGistに入れましたhttps://gist.github.com/davidfic/dd16836a5ec406473ea29698e6b3021f –

+0

それで、あなたのJenkinsの 'packer'コマンドは、' -var packer_profile = "foo" 'コマンドライン経由で使うための役割を提供しています。オプション、はい?または、デフォルトの「パッカー」値に依存していますか?ここ – Castaglia

答えて

1

このように、私はCastagliaから多くの助けを得て、これを動作させることができました。私が作った役割には何か問題があるようでした。私はそれを削除し、同じ名前と同じポリシーでそれを再作成しました。その後、正常に動作しました。

パッカーの指示に誤りがあると思います。彼らは、役割のために必要とされるすべてのように、次のリスト:

{ 
"Statement": [{ 
    "Effect": "Allow", 
    "Action" : [ 
    "ec2:AttachVolume", 
    "ec2:CreateVolume", 
    "ec2:DeleteVolume", 
    "ec2:CreateKeypair", 
    "ec2:DeleteKeypair", 
    "ec2:DescribeSubnets", 
    "ec2:CreateSecurityGroup", 
    "ec2:DeleteSecurityGroup", 
    "ec2:AuthorizeSecurityGroupIngress", 
    "ec2:CreateImage", 
    "ec2:CopyImage", 
    "ec2:RunInstances", 
    "ec2:TerminateInstances", 
    "ec2:StopInstances", 
    "ec2:DescribeVolumes", 
    "ec2:DetachVolume", 
    "ec2:DescribeInstances", 
    "ec2:CreateSnapshot", 
    "ec2:DeleteSnapshot", 
    "ec2:DescribeSnapshots", 
    "ec2:DescribeImages", 
    "ec2:RegisterImage", 
    "ec2:CreateTags", 
    "ec2:ModifyImageAttribute" 
    ], 
    "Resource" : "*" 
}] 
} 

をしかし、私はあなたがもう一枚必要と考えている:

{ 
    "Sid": "PackerIAMPassRole", 
    "Effect": "Allow", 
    "Action": "iam:PassRole", 
    "Resource": [ 
     "*" 
    ] 
} 

これは私が役割を引き受けると、私は必要なものを構築するために許可されやって。

関連する問題