2017-02-24 38 views
1

我使用Ansible的動態庫存功能使用下面連接到AWS賬戶的EC2實例: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,它拋出以下錯誤:

輸出: 錯誤:錯誤:有一個錯誤執行腳本庫存(庫存/ ec2.py)「認證錯誤檢索EC2庫存 - AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY環境乏找到,但可能不正確 - 博託CONFIGS在「〜/ .boto〜/ .aws /憑證」發現,但證書包含可能不正確」,而:獲得EC2實例

我運行來自MAC OS的劇本。請注意,我能夠成功下方運行:

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

這prooves的憑據是正確的,也是我所導出的AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。

我試圖執行如下的庫存/ ec2.py文件:

./ec2.py --list 

它回來了同樣的錯誤。我看到一則帖子,建議在機器上更新時間,我正在運行劇本。所以我跑ntpdate -u

但問題仍然存在。我不知道是什麼原因。 任何幫助/建議非常感謝。

回答

1

我設法解決了這個問題。在此解釋以便其他人受益。當我產生的AWS憑據AWS_PROFILE =個人,我只好值低於在〜/ .aws /憑證環境變量:

  1. aws_access_key_id
  2. aws_secret_access_key
  3. aws_session_token。

但是,如果您查看ec2.py,它需要一個名爲aws_security_token的變量值。所以我所做的只是將變量名稱從aws_session_token更改爲〜/ .aws/credentials中的aws_security_token。

和瞧。工作正常。

+0

謝謝,有同樣的問題。正在尋找一段時間,這也爲我解決了。 –

+0

創建一個PR來修復它:https://github.com/ansible/ansible/pull/36742 –