2017-02-24 14 views
1

私は以下の使用してAWSアカウントでEC2インスタンスに接続するためにAnsibleのダイナミックインベントリ機能を使用しています:Ansibleダイナミック在庫:認証エラーの取得EC2の在庫

AWS_PROFILE=personal ansible-playbook cifarm.yml -C 

私はインベントリ・ディレクトリの下にhttps://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.pyへとhttps://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.iniファイルをコピーしました。 AWS_PROFILE=personal ansible-playbook cifarm.yml -Cを実行する上で

、それはエラーの下にスロー:

出力: ERROR:インベントリスクリプト(在庫/ ec2.py)は、実行エラーが発生しました:ERROR:「認証エラーEC2インベントリを取得 - AWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEY環境変数が見つかりましたが、正しくない可能性があります - 〜/ .boto、〜/ .aws/credentials 'にBoto設定がありますが、含まれているクレデンシャルが正しくない可能性があります。 MAC OSからのプレイブック。私が正常に以下を実行することが可能だということに注意してください:

aws ec2 describe-instances --page-size 5 --profile personal 

これは、資格情報が正しいとも、私はAWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEYを輸出していることをprooves。

私は以下のように、在庫/ ec2.pyファイルを実行しようとしました:

./ec2.py --list 

そしてそれは同じエラーで戻ってきます。マシン上の時間を更新するよう提案された投稿を見ました。私はプレイブックを実行しています。だから私はntpdateを実行した-

しかし、問題は依然として続きます。私は理由が分からない。 ご意見やご提案は大変ありがとうございます。

答えて

1

問題を解決できました。他の人が利益を得るためにここで説明します。私は個人的AWS_PROFILE =用AWSの資格情報を生成するとき、私は〜/ .aws /信任状内の環境変数以下の値を持っていた:

  1. aws_secret_access_key
  2. aws_session_tokenをaws_access_key_id。

しかし、ec2.pyを見ると、aws_security_tokenという変数の値が必要です。だから、私がしたのは〜/ .aws/credentialsの変数名をaws_session_tokenからaws_security_tokenに変更したことだけでした。

そしてvoila。正常に動作します。

+0

ありがとう、同じ問題がありました。しばらく検索していたので、これも私のために修正されました。 –

+0

ここで修正するためのPRを作成しました:https://github.com/ansible/ansible/pull/36742 –