Cómo solucionar Conexión compartida a X.X.xx cerrado ”error ansible
- 5016
- 1108
- Claudia Baca
En este breve artículo, explicaremos cómo resolver el: "módulo_stderr":" Conexión compartida a X.X.X.x cerrado.\ r \ n "," MODULE_STDOUT ":"/bin/sh:/usr/bin/python: no hay dicho archivo o directorio \ r \ n ", mientras se ejecuta comandos Ansible.
La siguiente captura de pantalla muestra el error del módulo Ansible. Encontramos este error al ejecutar un comando ansible para ejecutar comandos en dos recién implementados Centos 8 servidor.
Error del módulo ansibleA partir de los detalles del error, la conexión falló porque los shell (s) en el sistema remoto no podían encontrar el Pitón intérprete (/usr/bin/python) como lo indica la línea: "MODULE_STDOUT ":“/bin/sh:/usr/bin/python: no hay dicho archivo o directorio \ r \ n".
Después de revisar los hosts remotos, descubrimos que los sistemas no tienen Python 2 instalado.
Consulte el binario de PythonEllos tienen Python 3 instalado de forma predeterminada y su binario es /usr/bin/python3.
Consulte Python3 binarySegún la documentación ansible, Ansible (2.5 y arriba) funciona solo con Python versión 3 y superior. Además, se supone que Ansible detectará y usa automáticamente Python 3 en muchas plataformas que se envían con él.
Sin embargo, si no lo hace, entonces puede configurar explícitamente un intérprete de Python 3 configurando el ansible_python_interpreter Variable de inventario a nivel de grupo o host a la ubicación de un intérprete Python 3 como se describe a continuación.
Pasando el intérprete de Python a Ansible en la línea de comandos
Para corregir el error anterior temporalmente, puede usar el -mi
bandera para pasar el intérprete de Python 3 a Ansible como se muestra.
$ ansible prod_servers -e 'ansible_python_interpreter =/usr/bin/python3' -a "systemCtl status firewalld" -u rootEstablezca el intérprete de Python a través de la línea de comandos
Configurar el intérprete de Python para Ansible en el inventario
Para corregir el error de forma permanente, configure el ansible_python_interpreter Variable de inventario en su inventario /etc/ansible/hosts. Puede abrirlo para editar usando el editor de texto V/IM o Nano como se muestra.
$ sudo vim/etc/ansible/hosts o # vim/etc/ansible/hosts
Agregue la siguiente línea a cada host o hosts en un grupo:
ansible_python_interpreter =/usr/bin/python3
Entonces, las definiciones de sus anfitriones pueden verse así:
[Prod_Servers] 192.168.10.1 ansible_python_interpreter =/usr/bin/python3 192.168.10.20 ansible_python_interpreter =/usr/bin/python3.6Establecer intérprete de Python para Ansible
Alternativamente, establezca el mismo intérprete de Python para un grupo de hosts como se muestra.
[Prod_Servers] 192.168.10.1 192.168.10.20 [Prod_Servers: Vars] ansible_python_interpreter =/usr/bin/python3Establecer Python Interpreter-, para todos los anfitriones en un grupo
Configuración de intérprete Python predeterminado en la configuración Ansible
Para establecer el intérprete Python predeterminado, puede establecer el ansible_python_interpreter Variable de inventario en el archivo de configuración principal de Ansible /etc/ansible/ansible.CFG.
$ sudo vim/etc/ansible/ansible.CFG
Agregue la siguiente línea debajo del [Valores predeterminados]
sección.
ansible_python_interpreter =/usr/bin/python3Establezca el intérprete de Python en la configuración Ansible
Guarde el archivo y cierre.
Ahora intente ejecutar el comando Ansible una vez más:
$ ansible prod_servers -a "systemCtl status firewalld" -u rootVerifique el comando Ansible
Para obtener más información sobre este tema, consulte el soporte de Python 3 en la documentación oficial Ansible.
- « La guía final para asegurar, endurecer y mejorar el rendimiento del servidor web NGINX
- Frostwire un descargador de nube, un cliente de BitTorrent y reproductor multimedia »