在Windows机器上安装Ansible

10

我尝试通过pip install ansible安装Ansible,但每次使用它时都会收到以下错误:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\ruan.greyling\AppData\Local\Programs\Python\Python311\Scripts\ansible.exe\__main__.py", line 4, in <module>
  File "C:\Users\ruan.greyling\AppData\Local\Programs\Python\Python311\Lib\site-packages\ansible\cli\__init__.py", line 42, in <module>
    check_blocking_io()
  File "C:\Users\ruan.greyling\AppData\Local\Programs\Python\Python311\Lib\site-packages\ansible\cli\__init__.py", line 34, in check_blocking_io
    if not os.get_blocking(fd):
           ^^^^^^^^^^^^^^^
AttributeError: module 'os' has no attribute 'get_blocking'

我已在该计算机上安装了Python和pip。


3
你不能使用Windows系统作为Ansible控制节点。请查看https://docs.ansible.com/ansible/latest/os_guide/windows_faq.html#windows-faq-ansible了解更多信息。 - β.εηοιτ.βε
感谢您的回复。我通过启动一个 AWS 实例作为控制节点,使其正常工作。 - Ruishoo
2个回答

10

这就是为什么你会收到这个错误的原因。

  • 没有WSL的Windows不支持作为控制节点(文档中有更多信息
  • 如果你想在Windows上运行控制节点,请使用WSL

良好的实践是将代码存储库同步到你的Linux控制节点,从Windows机器进行操作。


附加链接从文档到博客文章为什么没有适用于Windows的Ansible控制器? - cod3monk3y

-3

看起来这可能是与 Python 3.11 版本兼容性问题有关。我建议升级到最新版本的 Python,然后再次运行该命令。


1
os.get_blocking 被列为仅在 Unix 上可用(https://docs.python.org/3.10/library/os.html#os.get_blocking),因此升级 Python 不会解决此问题。正如其他人所说,问题在于没有安装 WSL 的 Windows 不能作为控制节点进行支持(https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#control-node-requirements)。 - cod3monk3y

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接