es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo un error en Ansible Tower AWX al utilizar el filtro regex_findall.

Obteniendo el siguiente error mientras estoy ejecutando mi playbook en ansible tower awx, en mi código tengo regex_findall.

   - set_fact:
         spool_ip_address: "{{output.stdout_lines|regex_findall('\\d+.\\d+.\\d+.\\d+')}}"

Error al ejecutar en ansible tower AWX:

{
    "msg": "Se produjo un error inesperado en el tipo de plantilla en ({{output.stdout_lines|regex_findall('\\d+.\\d+.\\d+.\\d+')}}): se esperaba un objeto de tipo cadena o similar",
    "_ansible_no_log": false
}

Mientras tanto, no obtengo el error anterior cuando lo ejecuto desde mi laptop. Tengo la versión de ansible 2.10, obtengo una lista de todas las direcciones IP de output.stdout_lines como spool_ip_address: [10.10.20.100,20.30.40.50,100.100.200.1]

ansible awx está ejecutando Ansible 2.9.14 con la versión awx: AWX 15.0.1

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el filtro regex_findall espera un objeto de tipo string o bytes, pero está recibiendo otra cosa. Esto puede deberse a una diferencia de versiones entre Ansible en tu laptop y la versión que se ejecuta en AWX.

    Es posible que la variable output.stdout_lines no esté en el formato que espera regex_findall. Puedes intentar usar el módulo debug para imprimir el valor de output.stdout_lines y ver cómo se ve.

    Otra cosa a verificar es si la expresión regular utilizada en regex_findall realmente coincide con las direcciones IP en output.stdout_lines. Puedes probar la expresión regular utilizando un validador de expresiones regulares en línea.

    Finalmente, es posible que haya un error en la versión de Ansible que se ejecuta en AWX. Puedes intentar actualizar Ansible en AWX para ver si eso soluciona el problema.

Comments are closed.