2016-03-30 42 views
2

現在、Packer経由で問題なくAMIを構築していますが、AWSの資格情報を自分のスクリプトに焼き付けています。彼らが指定したPackerドキュメントを読むと、信任状が見つからない場合、AWSの役割を使用することができます。PackerでAWSロールを使用してAMIを作成する方法

私はポリシーと役割を作成しましたが、この役割を使用するようにパッカーに指示する方法は不明です。 ARNを変数として渡す必要がありますか?

どのような考えですか?

+0

https://www.packer.io/docs/builders/amazon.html これを試しましたか? –

+0

私はそのページを読みましたが、私はAWSの資格情報を指定したくありません。私はちょうどその役割を使いたい。私はあなたがパッカーにiam_instance_profileを渡し、私が作成したロールにそれを設定できることを発見しました。これはコマンドライン上でうまく動作しますが、私はJenkinsでこれをやろうとしていますが、私はそれらをすばらしいものにする方法を理解していません。パッカーのドキュメントは、iam_instance_profileの使用について明確ではありません。私はGithubを見つけてそれを見つけなければならなかった。 –

答えて

2

ロールはAWS で実行されているインスタンスにのみ適用され、インスタンスはインスタンス作成時にのみ適用されます(ただし、そのロールに割り当てられた権限は後で変更できます)

あなたはAMIの作成のための役割を使用したいのであれば、この場合には、あなたは...

  1. を作成する権限を持つロール(クッシュが提供されたリンクで詳述すなわちもの)を作成する必要があります。 AMIの
  2. その役割あなたはAMIのワットを作成することができますそして、そのインスタンスを使用して、そのインスタンスに

をパッカーをインストール

  • でインスタンスを作成します。資格情報を指定しないで

  • +0

    参照IAMロール:https://www.packer.io/docs/builders/amazon.html#using-an-iam-task-or-instance-role –

    -1

    あなたはパッカーは、コマンドライン(例えばジェンキンスから)からのA​​MIの作成時に使用するIAMロールを設定したい場合は、あなたがそうするために変数を使用することができ、例えばは、あなたのパッカースクリプトで次のように使用して:

    "variables": { 
        "packer_profile": "packer", 
        ... 
    }, 
    "builders": [ 
        { 
        "type": "amazon-ebs", 
        ... 
        "iam_instance_profile": "{{user `packer_role`}}", 
        ... 
        } 
    ], 
    "provisioners": [ 
        ... 
    ] 
    

    だから我々は我々のpacker_profile変数のデフォルト「パッカー」の値を提供します。次に、JenkinsのコマンドラインからPackerを呼び出すと、次のようにデフォルトの変数値が上書きされます。

    $ /path/to/packer -var packer_profile="MyNewProfileHere" ... 
    

    これが役に立ちます。

    関連する問題