1
resposta

Erro ao executar ansible com o python

Opa, to seguindo o curso e sempre pesquisando bastante por fora. Porem, tive problemas com o ansible nessa parte do curso.

Quando eu executo o ansible via python, depois de instalar, verificar a versão e tudo mais, ele me da o erro:

ansible --version

Traceback (most recent call last): File "C:\Python39\lib\runpy.py", line 197, in runmodule_as_main return runcode(code, main_globals, None, File "C:\Python39\lib\runpy.py", line 87, in runcode exec(code, run_globals) File "C:\Users\Carlos\AppData\Roaming\Python\Python39\Scripts\ansible.exe_main__.py", line 4, in File "C:\Users\Carlos\AppData\Roaming\Python\Python39\site-packages\ansible\cli_init_.py", line 42, in checkblocking_io() File "C:\Users\Carlos\AppData\Roaming\Python\Python39\site-packages\ansible\cli_init__.py", line 34, in checkblocking_io if not os.get_blocking(fd): AttributeError: module 'os' has no attribute 'get_blocking'

Porém, tentei usar via wsl tambem, mas quando eu migro pra minha instancia do linux eu nunca consigo validar a chave ssh pois o wsl tem problemas pra executar arquivos no sistema de arquivos do windos. Portanto, não consigo nem executar o terraform dessa maneira.

Caso possam me ajudar de alguma maneira, ficaria agradecido.

1 resposta

Tudo bem João?

Existem 2 possibilidades, a que eu acho mais simples é você copiar a chave e o playbook para uma pasta exclusiva do WSL, como a sua home (~) e executar com o WSL. A outra possibilidade é resolver o problema, que parece ser de instalação, do Ansible no Windows, só para clarificar, o Ansible esta instalado, porem o Python não esta conseguindo get_blocking porque o Windows não tem essa função, mas caso queira usar o Windows a documentação do Ansible tem uma seção sobre como preparar o Windows bem extensa.

Espero ter ajudado, continue se esforçando e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software