そのため、awsのec2インスタンスで初めてansibleを実行しようとしていますが、新しいインスタンスで初めて実行しますが、プレイを実行しようとするたびに、このエラーメッセージを回避できません。
PLAY [localhost]
**************************************************************
TASK: [make one instance]
*****************************************************
failed: [localhost] => {"failed": true} msg: No handler was ready to
authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check
your credentials
FATAL: all hosts have already failed -- aborting
PLAY RECAP
********************************************************************
to retry, use: --limit @/home/ubuntu/ans_test.retry
localhost : ok=0 changed=0 unreachable=0
failed=1
IAMユーザーとグループのアクセス許可に問題がある可能性があります。 IAMユーザーとグループにReadOnlyAccess、AdministratorAccess、PowerUserAccessを付与しました。コマンドで環境変数として設定しているアクセスIDとシークレットアクセスキーがあります。
export AWS_ACCESS_KEY_ID='AK123'
export AWS_SECRET_ACCESS_KEY='abc123'
「AK123」と「abc123」を実際のIDとキーの値に置き換えました。 ansible ec2タスクを機能させるには、他に何が必要ですか?
更新:
問題を修正しました。環境変数が何であるかについては、しっかりと理解していないと思います。私のec2タスク内にaws_access_keyとaws_secret_keyを設定するだけで修正しました。
- hosts: localhost
connection: local
gather_facts: False
tasks:
#this task creates 5 ec2 instances that are all named demo and are copies of the image specified
- name: Provision a set of instances
ec2:
aws_access_key: .....
aws_secret_key: ....
key_name: .....
group: .....
instance_type: t2.micro
image: ......
region: us-east-1
ec2_url: .......
wait: true
exact_count: 5
count_tag:
Name: Demo
instance_tags:
Name: Demo
register: ec2
私は今、キーとIDを保持するためだけにansible vaultを使い始める必要があると思います。
私は問題を修正しました。環境変数が何であるかについては、しっかりと理解していなかったと思います。私のec2タスク内にaws_access_keyとaws_secret_keyを設定するだけで修正しました。
- hosts: localhost
connection: local
gather_facts: False
tasks:
#this task creates 5 ec2 instances that are all named demo and are copies of the image specified
- name: Provision a set of instances
ec2:
aws_access_key: .....
aws_secret_key: ....
key_name: .....
group: .....
instance_type: t2.micro
image: ......
region: us-east-1
ec2_url: .......
wait: true
exact_count: 5
count_tag:
Name: Demo
instance_tags:
Name: Demo
register: ec2
私は今、キーとIDを保持するためだけにansible vaultを使い始める必要があると思います。
この問題が発生した場合は、プレイブックでbecome/Sudo: False
とconnection: local
を設定することで解決できます。
---
- hosts: localhost
connection: local
become: False
tasks:
...
...
これが他の人の役に立つことを願っています。
私の場合、変数は引用符で囲まれている必要があります(シングルでもダブルでもかまいません)。
悪い:
export AWS_ACCESS_KEY_ID=AK123
export AWS_SECRET_ACCESS_KEY=abc123
良い:
export AWS_ACCESS_KEY_ID='AK123'
export AWS_SECRET_ACCESS_KEY='abc123'
良い:
export AWS_ACCESS_KEY_ID="AK123"
export AWS_SECRET_ACCESS_KEY="abc123"