使用 ansible=2.10.0 和 boto=2.49.0,尝试执行 ec2_vol playbook 以使用代理环境管理 AWS 实例的磁盘时。 收到此错误 -
connection.py",第 796 行,在 proxy_ssl 中,sock.sendall("CONNECT %s HTTP/1.0 “ % host), TypeError: 需要一个类似字节的对象,而不是“str”,
boto 有开放 PR 来修复它,但尚未合并 - https://github.com/boto/boto/pull/3699。 有社区模块也不适用于 ec2_vol,例如 - https://galaxy.ansible.com/community/aws。
除了像Python中的monkeypatching一样使用fork来解决之外,还有其他解决方案吗?
经过长时间的研发,我找到了上述错误的解决方案 -
我们可以使用
amazon.aws:1.4.1
版本来解决这个问题。
我没有像上面的 ec2_vol 任务那样抛出错误。
对于 ansible 集合的 ec2 模块,我遇到了相同的错误。将ansible升级到4.10.0也不起作用。它推出了集合 1.5.1。它仍然调用相同的 boto 包 Connection.py 并且第 796 行在 exceptiob 之上抛出异常。 知道我们是否可以使用不同的模块来仅启动或重新启动 AWS ec2 实例吗?