2016-03-02 13 views
8

So versuche ich Ansible auf meinen ec2-Instanzen auf aws, zum ersten Mal auf einer neuen Instanz, aber jedes Mal, wenn ich versuche, ein Spiel zu spielen, kann ich diesen Fehler nicht umgehen Nachricht:msg: Kein Handler konnte zur Authentifizierung bereit sein. 1 Handler wurden überprüft. ['HmacAuthV4Handler'] Überprüfen Sie Ihre Anmeldeinformationen

Ich denke, dass etwas mit den Berechtigungen in meinem IAM Benutzer und Gruppe falsch sein kann. Ich habe meinen IAM-Benutzer und die Gruppe ReadOnlyAccess, AdministratorAccess und PowerUserAccess angegeben. Ich habe einen Zugang ID und geheimen Zugriffsschlüssel, die ich als Umgebungsvariable mit den Befehlen am Einstellung:

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

Mit ‚AK123'and‚abc123‘ersetzt mit meiner tatsächlichen ID und Schlüsselwerten. Was muss ich noch tun, damit die ansible ec2-Aufgabe funktioniert?

UPDATE:
Ich reparierte das Problem, ich denke, ich hatte nicht wirklich ein solides Verständnis der Umweltvariablen. Ich reparierte es nur um innerhalb meiner EC2 Aufgabe meiner aws_access_key und aws_secret_key Einstellung unten ist mein Arbeitstextbuch

- 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 

ich jetzt glaube, ich muss mit ansible Gewölbe starten, um nur meinen Schlüssel und ID zu halten.

+0

Können Sie das Textbuch in Ihrer Frage enthalten? – jonatan

+0

Ich denke, Ansible wird die Umgebungsvariablen während des gesamten Spiels nicht behalten. Haben Sie versucht, die Variablen im Befehl wie 'command:" zu setzen, exportieren Sie AWS_ACCESS_KEY_ID = 'AK123' && export AWS_SECRET_ACCESS_KEY = 'abc123' && actual command "'? –

Antwort

3

Ich habe das Problem behoben, ich denke, ich hatte nicht wirklich ein solides Verständnis der Umgebungsvariablen. Ich reparierte es nur um innerhalb meiner EC2 Aufgabe meiner aws_access_key und aws_secret_key Einstellung unten ist mein Arbeitstextbuch

- 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 

ich jetzt glaube, ich muss mit ansible Gewölbe starten, um nur meinen Schlüssel und ID zu halten.

8

Für diejenigen, die dieses Problem haben, können Sie es lösen, indem Sie become/sudo: False und connection: local im Playbook einstellen.

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

Ich hoffe, dies wird anderen helfen.

1

In meinem Fall die Variablen in Anführungszeichen haben muss (Einzel- oder Doppel es spielt keine Rolle).

BAD:

export AWS_ACCESS_KEY_ID=AK123 
export AWS_SECRET_ACCESS_KEY=abc123 

GUT:

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

GUT:

export AWS_ACCESS_KEY_ID="AK123" 
export AWS_SECRET_ACCESS_KEY="abc123" 
+0

Es ist wichtig, dass viele von Ihnen spezielle Zeichen in der Var. Einfache Anführungsstriche zum Beispiel werden nicht $ oder! Expandieren, wo das Doppelte ist. Dies führt zu Auth-Fehlern, wenn Sie mit diesen Zeichen doubles verwenden – krad