我想知道如何优化Ansible以使用一个与加速和默认可能不一定有益的用例完全不同的网络。
在这种情况下,我不是在处理虚拟网络,也不是在处理服务器。我正在处理数百个嵌入式设备,具有相当独特的网络设计,主机故障或网络布线的缺点可能导致周期性连接更改到相邻主机。
这通常会导致单个SSH连接上的SSH会话丢失或滞后,但不幸的是导致Ansible有时会挂起在特定主机上,而单独的Timeout更改似乎没有任何区别。
任何人都可以提供一些信息,说明哪些参数最适合管理配置更改并在网络上安装更新,在网络上会话期间或连接到特定主机时可能会发生丢失,因此较长时间的会话可能没有用处。特别是在这个使用场景的背景下对这些领域的一些建议
答案 0 :(得分:2)
如果您在网络中工作,连接可能会丢失'在'执行一个游戏/任务然后我不确定(阅读:我不认为)ansible保存执行的上下文,以便从这些问题中恢复。
如果你的网络不好,你应该解决这个问题。
假设你已经知道了所有这些并且:如果你的网络不好但你无法修复它,那么感兴趣的参数将是#2,可能是你列出的#3。
更改#2以确保SSH不会尝试重用连接(不会持续存在)。这将减慢剧本的执行速度,但会提供更好的稳定性。
更改#3如果您必须传输大文件并且您使用的是超过1.5的paramiko或ansible。
为了完整性:#1有点不用脑,除非你别无选择,否则不要使用paramiko。因此,虽然你把它列为你可以选择的东西,但是出于实际目的,ansible期望你使用SSH,因为使用paramiko而不是SSH有许多缺点,只有一个优点,如果你没有优势,那么你可能不需要它。 : - )
即使在所有这些设置之后,如果在执行任务期间您的连接丢失,那么ansible可能无法执行任何操作,只会显示错误消息。唯一可以帮助你处理这些情况的是你的戏剧/任务的幂等性。这样你就可以在循环中运行它,直到你的playbook成功运行并进行0次更改。