web-dev-qa-db-fra.com

msg: Aucun gestionnaire n'était prêt à s'authentifier. 1 manutentionnaires ont été contrôlés. ['HmacAuthV4Handler'] Vérifiez vos informations d'identification

J'essaie donc d'exécuter ansible sur mes instances ec2 sur aws, pour la première fois sur une nouvelle instance, mais chaque fois que j'essaie d'exécuter un jeu, je ne peux pas contourner ce message d'erreur:

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

Je pense qu'il peut y avoir un problème avec les autorisations de mon utilisateur et de mon groupe IAM. J'ai donné à mon utilisateur et groupe IAM ReadOnlyAccess, AdministratorAccess et PowerUserAccess. J'ai un identifiant d'accès et une clé d'accès secrète que je définis comme variable d'environnement avec les commandes:

   export AWS_ACCESS_KEY_ID='AK123'
   export AWS_SECRET_ACCESS_KEY='abc123'

Avec "AK123" et "abc123" remplacés par mes valeurs d'identification et de clé réelles. Que dois-je faire d'autre pour que la tâche ansible ec2 fonctionne?

METTRE À JOUR:
J'ai résolu le problème, je suppose que je n'avais pas vraiment une bonne compréhension des variables environnementales. Je l'ai corrigé en définissant simplement mes aws_access_key et aws_secret_key à l'intérieur de ma tâche ec2, ci-dessous mon playbook de travail

- 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  

Je suppose que maintenant je dois commencer à utiliser le coffre-fort ansible pour simplement garder ma clé et mon identifiant.

13
Alex Cohen

J'ai résolu le problème, je suppose que je n'avais pas vraiment une bonne compréhension de ce que sont les variables environnementales. Je l'ai corrigé en définissant simplement mes aws_access_key et aws_secret_key à l'intérieur de ma tâche ec2, ci-dessous mon playbook de travail

- 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  

Je suppose que maintenant je dois commencer à utiliser le coffre-fort ansible pour simplement garder ma clé et mon identifiant.

3
Alex Cohen

Pour ceux qui rencontrent ce problème, vous pouvez le résoudre en définissant le paramètre become/Sudo: False et connection: local dans le playbook.

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

J'espère que cela aidera les autres.

11
Arbab Nazar

Dans mon cas, les variables doivent avoir été entre guillemets (simples ou doubles, peu importe).

MAUVAIS:

export AWS_ACCESS_KEY_ID=AK123
export AWS_SECRET_ACCESS_KEY=abc123

BIEN:

export AWS_ACCESS_KEY_ID='AK123'
export AWS_SECRET_ACCESS_KEY='abc123'

BIEN:

export AWS_ACCESS_KEY_ID="AK123"
export AWS_SECRET_ACCESS_KEY="abc123"
2
Andrzej Rehmann