2017-01-21 3 views
5

Wenn ich diese einfache ansible Textbuch laufen:ansible EC2: "Boto für dieses Modul erforderlich"

- name: EC2 Test Example 
    hosts: localhost 
    connection: local 
    gather_facts: False 

    tasks: 
    - name: EC2 Instance 
    ec2: 
     # Amazon EC2 key pair name 
     key_name: my-key-pair 
     # Amazon EC2 Security Group 
     group: my-security-group 
     instance_type: t2.micro 
     # Latest from https://wiki.debian.org/Cloud/AmazonEC2Image/Jessie 
     image: ami-221ea342 
     wait: yes 
    register: ec2 

ich mit venv/bin/ansible-playbook -i localhost, playbook.yml laufen:

PLAY [EC2 Test Example] ******************************************************** 

TASK [EC2 Instance] ************************************************************ 
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "boto required for this module"} 
    to retry, use: --limit @/Users/admin/temp/ansec2/playbook.retry 

PLAY RECAP ********************************************************************* 
localhost     : ok=0 changed=0 unreachable=0 failed=1 

So offensichtlich, ich habe Boto in der Venv installiert dass ich auch als Standard-System mit Python:

➜ ansec2 venv/bin/pip list 
Package   Version 
--------------- -------- 
ansible   2.2.1.0 
boto   2.45.0 
boto3   1.4.4 
botocore  1.5.4 
... 

ich habe ein paar ähnlichen Beiträge gelesen und ich sehe keinen wor Königslösung.

+0

Sie brauchen diesen '-i localhost,' hack nicht mehr. Bist du sicher, dass es notwendig ist? Ähhh!!! Das ist die Ursache Ihres Problems. – techraf

Antwort

3

Die Ursache Ihres Problems ist der -i localhost, Hack. Sie müssen es nicht mehr in Ansible verwenden.

Sie können einfach laufen:

ansible-playbook playbook.yml 

Und mit connection: local im Spiel ansible den Python ausführbaren Satz von Venv verwenden.


Wenn Sie den -i localhost, Hack verwenden, ruft ansible seine Standard /usr/bin/python.

In diesem Fall können Sie immer noch die ansible_python_interpreter Parameter hinzufügen ansible zu sagen, diese spezifische Umgebung zu verwenden:

ansible-playbook -i localhost, playbook.yml --extra-vars "ansible_python_interpreter=/Users/admin/temp/ansec2/venv/bin/python" 

Aber ich denke, man es vermeiden sollte, und die erste Methode verwenden.

+0

Ich habe absolut versucht 'Quelle venv/bin/aktivieren' vor meinem ursprünglichen Beitrag. Ich habe auch Boto in die Standardsystem-Python-Umgebung gestellt. Das sind die offensichtlichen Dinge, die man ausprobieren sollte. keiner hat geholfen. – clay

+1

'ansible localhost -a" welche python "' – techraf

+1

Führe auch 'ansible-playbook' mit' -vvv' und du siehst eine Zeile 'EXEC/bin/sh -c '.../bin/python ...' - Was ist der Weg? – techraf

Verwandte Themen