web-dev-qa-db-ja.com

メッセージ:認証する準備ができているハンドラーがありませんでした。 1ハンドラがチェックされました。 ['HmacAuthV4Handler']認証情報を確認してください

そのため、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を使い始める必要があると思います。

13
Alex Cohen

私は問題を修正しました。環境変数が何であるかについては、しっかりと理解していなかったと思います。私の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を使い始める必要があると思います。

3
Alex Cohen

この問題が発生した場合は、プレイブックでbecome/Sudo: Falseconnection: localを設定することで解決できます。

---
- hosts: localhost
  connection: local
  become: False
  tasks:
   ...
   ...

これが他の人の役に立つことを願っています。

11
Arbab Nazar

私の場合、変数は引用符で囲まれている必要があります(シングルでもダブルでもかまいません)。

悪い:

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"
2
Andrzej Rehmann