Récemment, j'ai modifié la façon dont l'environnement Python sur les machines clientes, configuré à l'aide d'Ansible, est configuré.
Cela a impliqué de minimiser le nombre de paquets installés et configurés dans l'installation du système Python (sur les clients Ubuntu 14.04), afin d'éviter le potentiel de conflits de bibliothèques lorsque les machines clientes sont ensuite utilisées pour des activités de développement.
Depuis que j'ai effectué ce changement, j'ai des problèmes avec le programme unarchive
Module Ansible ne validant pas les certificats SSL si le remote_src
est utilisé en conjonction avec une URL HTTPS.
Voici un exemple d'une commande qui a échoué :
- name: Get and untar opus-1.1.2
unarchive:
src="http://downloads.xiph.org/releases/opus/opus-1.1.2.tar.gz"
dest="/opt/library-sources"
remote_src=yes
Lorsqu'elle est exécutée, la commande ci-dessus échoue avec le message d'erreur suivant :
fatal: [10.0.0.90]: FAILED! => {"changed": false, "failed": true, "msg": "Failed to validate the SSL certificate for downloads.xiph.org:443. Make sure your managed systems have a valid CA certificate installed. If the website serving the url uses SNI you need python >= 2.7.9 on your managed machine or you can install the `urllib3`, `pyopenssl`, `ndg-httpsclient`, and `pyasn1` python modules to perform SNI verification in python >= 2.6. You can use validate_certs=False if you do not need to confirm the servers identity but this is unsafe and not recommended. Paths checked for this platform: /etc/ssl/certs, /etc/pki/ca-trust/extracted/pem, /etc/pki/tls/certs, /usr/share/ca-certificates/cacert.org, /etc/ansible"}
Si j'ai bien compris, cette erreur est due au fait qu'il manque des bibliothèques Python que l'utilisateur doit utiliser. unarchive
dépend de.
Ce que je n'ai pas réussi à comprendre dans la documentation Ansible, c'est si ces paquets sont des exigences de l'environnement Python sur la machine serveur (chargée d'exécuter les scripts Ansible) et ou les machines clientes (sur lesquelles les tâches détaillées dans les scripts Ansible sont exécutées).
Il convient de noter que j'ai installé Ansible sur la machine serveur (qui fonctionne également sous Ubuntu 14.04), via pip
qui a également installé les versions suivantes des paquets mentionnés dans le message d'erreur :
urllib3==1.7.1
ndg-httpsclient==0.4.3
pyasn1==0.4.2
pyOpenSSL==0.13
Cela m'amène à penser que ces paquets sont probablement nécessaires sur la machine cliente ainsi que sur le serveur.
Quelqu'un sait-il sur quelles machines (serveur et ou client) ces paquets sont nécessaires ? Je serais également intéressé de savoir où cela est documenté car cela peut soulever des problèmes ailleurs dans mes scripts Ansible.