[PYTHON] Mettre Ansible dans AmazonLinux via yum ne fonctionne pas

Il semble que la version par défaut de Python soit 2.7 dans la version 2015/03 d'Amazon Linux, ce qui a rendu Ansible via yum un peu addictif. Amazon Linux AMI 2015.03 Release Notes

Installez Ansible

$ sudo yum install ansible

Les packages dépendants incluent la série python 2.6.

==================================================================================================================================================================================================
Capacité du référentiel de versions d'architecture de package
==================================================================================================================================================================================================
Pendant l'installation:
 ansible                                                          noarch                            1.9.0.1-2.el6                                   epel                                    1.7 M
Installation liée aux dépendances:
 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

Récapitulatif des transactions
==================================================================================================================================================================================================
Pack d'installation 1(+18 packages de dépendances)

Confirmation d'installation

$ 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

Ça ne marche pas.

$ python --version
Python 2.7.9

La version Python est la série 2.7.

Si Python est défini sur la série 2.6, cela fonctionnera pour le moment

Essayez de changer la version Python en série 2.6.

$ sudo alternatives --config python

Il y a 2 programmes'python'Fournir.

Sélectionnez la commande
-----------------------------------------------
*+ 1           /usr/bin/python2.7
   2           /usr/bin/python2.6

Appuyez sur Entrée pour sélectionner le courant[+]Ou entrez le numéro de sélection:2
$ python --version
Python 2.6.9

Cela fonctionne pour le moment.

$ 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"
}

miam ne fonctionne pas

Cependant, cela ne fonctionne pas avec yum.

Playbook que j'ai essayé

---
- hosts:
    - localhost

  connection: local

  tasks:
    - name: update all packages
      yum: name=* state=latest
      sudo: yes

Résultat d'exécution

$ 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

Je ne pense pas qu'il soit courant d'appliquer des playbooks à localhost dans Ansible, donc ce n'est peut-être pas un problème, mais c'est un peu désagréable.

Conclusion: installons avec pip

Installons Python tranquillement avec pip en utilisant la série 2.7.

$ python --version
Python 2.7.9
$ sudo pip install ansible
...
Successfully installed ansible-1.9.1

Cela fonctionnera. (L'avertissement est sorti ...)

$ 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

référence

Ansible a cessé de fonctionner après la mise à jour de yum sur Amazon Linux

Recommended Posts

Mettre Ansible dans AmazonLinux via yum ne fonctionne pas
Pip ne fonctionne pas bien avec PyDev dans Pléiades
Tensorflow ne fonctionne pas!