Es scheint, dass die Standardversion von Python in der Version 2015/03 von Amazon Linux 2.7 ist, was Ansible via yum ein wenig süchtig gemacht hat. Amazon Linux AMI 2015.03 Release Notes
$ sudo yum install ansible
Abhängige Pakete enthalten die Python 2.6-Serie.
==================================================================================================================================================================================================
Paketarchitektur-Versions-Repository-Kapazität
==================================================================================================================================================================================================
Während der Installation:
ansible noarch 1.9.0.1-2.el6 epel 1.7 M
Abhängigkeitsbezogene Installation:
python-crypto2.6 x86_64 2.6.1-2.el6 epel 513 k
python-keyczar noarch 0.71c-1.el6 epel 219 k
python26 x86_64 2.6.9-1.80.amzn1 amzn-updates 5.7 M
python26-PyYAML x86_64 3.10-3.10.amzn1 amzn-main 186 k
python26-babel noarch 0.9.4-5.1.8.amzn1 amzn-main 1.8 M
python26-backports x86_64 1.0-3.14.amzn1 amzn-main 5.2 k
python26-backports-ssl_match_hostname noarch 3.4.0.2-1.12.amzn1 amzn-main 12 k
python26-crypto x86_64 2.6.1-1.10.amzn1 amzn-main 697 k
python26-ecdsa noarch 0.11-3.3.amzn1 amzn-main 77 k
python26-httplib2 noarch 0.7.7-1.5.amzn1 amzn-main 81 k
python26-jinja2 noarch 2.7.2-2.15.amzn1 amzn-main 899 k
python26-libs x86_64 2.6.9-1.80.amzn1 amzn-updates 692 k
python26-markupsafe x86_64 0.11-4.6.amzn1 amzn-main 27 k
python26-paramiko noarch 1.15.1-1.5.amzn1 amzn-main 1.3 M
python26-pyasn1 noarch 0.1.7-2.7.amzn1 amzn-main 174 k
python26-setuptools noarch 12.2-1.30.amzn1 amzn-updates 582 k
python26-simplejson x86_64 3.6.5-1.12.amzn1 amzn-main 210 k
python26-six noarch 1.8.0-1.23.amzn1 amzn-main 31 k
Transaktions zusammenfassung
==================================================================================================================================================================================================
Installation 1 Paket(+18 Abhängigkeitspakete)
$ ansible localhost --connection=local -m ping
Traceback (most recent call last):
File "/usr/bin/ansible", line 36, in <module>
from ansible.runner import Runner
ImportError: No module named ansible.runner
Es funktioniert nicht.
$ python --version
Python 2.7.9
Die Python-Version ist die 2.7-Serie.
Versuchen Sie, die Python-Version auf die 2.6-Serie zu ändern.
$ sudo alternatives --config python
Es gibt 2 Programme'python'Bereitstellen.
Befehl auswählen
-----------------------------------------------
*+ 1 /usr/bin/python2.7
2 /usr/bin/python2.6
Drücken Sie die Eingabetaste, um den aktuellen auszuwählen[+]Oder geben Sie die Auswahlnummer ein:2
$ python --version
Python 2.6.9
Dies funktioniert vorerst.
$ ansible localhost --connection=local -m ping
[WARNING]: The version of gmp you have installed has a known issue regarding
timing vulnerabilities when used with pycrypto. If possible, you should update
it (i.e. yum update gmp).
localhost | success >> {
"changed": false,
"ping": "pong"
}
Dies funktioniert jedoch nicht mit yum.
---
- hosts:
- localhost
connection: local
tasks:
- name: update all packages
yum: name=* state=latest
sudo: yes
$ ansible-playbook test.yml
[WARNING]: The version of gmp you have installed has a known issue regarding
timing vulnerabilities when used with pycrypto. If possible, you should update
it (i.e. yum update gmp).
PLAY [localhost] **************************************************************
GATHERING FACTS ***************************************************************
ok: [localhost]
TASK: [update all packages] ***************************************************
failed: [localhost] => {"failed": true, "parsed": false}
BECOME-SUCCESS-cowfsuudxofapfzgotceycqgfeksicos
Traceback (most recent call last):
File "/home/ec2-user/.ansible/tmp/ansible-tmp-1430645872.15-203675717416361/yum", line 27, in <module>
import yum
ImportError: No module named yum
FATAL: all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit @/home/ec2-user/test.retry
localhost : ok=1 changed=0 unreachable=0 failed=1
Ich denke nicht, dass es üblich ist, Playbooks in Ansible auf localhost anzuwenden, daher ist dies möglicherweise kein Problem, aber etwas unangenehm.
Lassen Sie uns Python leise mit pip unter Verwendung der 2.7-Serie installieren.
$ python --version
Python 2.7.9
$ sudo pip install ansible
...
Successfully installed ansible-1.9.1
Das wird funktionieren. (Warnung ist aus ...)
$ ansible-playbook test.yml
/usr/lib64/python2.7/dist-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
PLAY [localhost] **************************************************************
GATHERING FACTS ***************************************************************
ok: [localhost]
TASK: [update all packages] ***************************************************
changed: [localhost]
PLAY RECAP ********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0
Ansible funktioniert nach dem yum-Update unter Amazon Linux nicht mehr