Networking 优化非传统网络的Ansible Transport\SSH

Networking 优化非传统网络的Ansible Transport\SSH,networking,optimization,ssh,ansible,Networking,Optimization,Ssh,Ansible,我想知道如何优化Ansible,以便与一个完全不同于加速和默认情况下可能不一定有益的网络一起工作 在这个场景中,我没有处理虚拟网络,也没有处理服务器。我正在处理数百个具有相当独特的网络设计的嵌入式系统,其缺点是主机故障或网络布线可能会导致相邻主机的定期连接更改 这通常会导致单个SSH连接上的SSH会话被丢弃或延迟,但不幸的是,有时会导致Ansible在特定主机上挂起,仅更改超时似乎没有任何区别 是否有人能提供一些信息,说明哪些参数最适合在网络上管理配置更改和安装更新,因为在特定主机上或连接到特定

我想知道如何优化Ansible,以便与一个完全不同于加速和默认情况下可能不一定有益的网络一起工作

在这个场景中,我没有处理虚拟网络,也没有处理服务器。我正在处理数百个具有相当独特的网络设计的嵌入式系统,其缺点是主机故障或网络布线可能会导致相邻主机的定期连接更改

这通常会导致单个SSH连接上的SSH会话被丢弃或延迟,但不幸的是,有时会导致Ansible在特定主机上挂起,仅更改超时似乎没有任何区别

是否有人能提供一些信息,说明哪些参数最适合在网络上管理配置更改和安装更新,因为在特定主机上或连接到特定主机的会话期间可能会发生退出,因此较长时间的会话可能没有好处。特别是在这个使用场景的上下文中,关于这些方面的一些建议

  • ssh vs paramiko
  • 控件持久化、管道化和超时参数
  • 加速还是不加速
  • 评估指定运行叉数的适用性

  • 如果您在网络中工作,在播放/任务的执行过程中,连接可能会丢失,那么我不确定ansible是否经常保存执行上下文以从此类问题中恢复

    如果你的网络坏了,你应该修复它

    假设你已经知道所有这些,并且:如果你的网络坏了,但你无法修复它,那么你列出的感兴趣的参数将是#2,可能是#3

    更改#2以确保SSH不会尝试重用连接(不会持续)。这将减慢剧本的执行速度,但会提供更好的稳定性

    如果您必须传输大文件,并且使用的是1.5以上的paramiko或ansible,请更改#3

    为了完整性:#1有点不需要动脑筋,除非你别无选择,否则不要使用paramiko。因此,尽管您将其列为您可以选择的内容,但出于实际目的,ansible希望您使用SSH,因为使用paramiko比SSH有许多缺点,只有一个优点,如果您没有优势,那么您可能不需要它。:-)


    即使在所有这些设置之后,如果您的连接在任务执行过程中丢失,那么ansible除了向您显示错误消息之外,可能什么都做不了。唯一能帮助你处理这些情况的是你的剧本/任务的幂等性。这样您就可以循环运行它,直到您的playbook成功运行并进行0次更改。

    您考虑过拉模式吗?Mxx-是的,我考虑过拉模式-这确实是软件更新的好主意,但我也用它来做拉不实用的自动检查。Kashyap-Ansible应该比直接ssh更好,并且比并行ssh更易于管理资源清册。我在这里不是在做疯狂的事情——只是偶尔推(小)包,当然还有前面提到的系统检查,只需要运行几个shell脚本。谢谢——在这种情况下,除了通过配置更改进行优化之外,我对网络没有选择——没有物理访问。有时,你的工作就是充分利用加入项目之前所做的工作,这就是其中之一。这是非常不寻常的,因为每个节点都是桥,因此在检测到拓扑变化时需要稳定。