在Ansible中,是否有一种方法可以按特定顺序进行部署?
几个月以来我一直在使用Ansible,我对不同主机上的部署顺序有点问题 我有8台服务器:在Ansible中,是否有一种方法可以按特定顺序进行部署?,ansible,ansible-playbook,Ansible,Ansible Playbook,几个月以来我一直在使用Ansible,我对不同主机上的部署顺序有点问题 我有8台服务器: 4反向代理apache 4台tomcat服务器 当我在这些服务器上进行部署时,我必须停止第一个Apache在第一个Tomcat上执行部署。Tomcat1完成后,我必须启动Apache1。之后,我将在所有服务器上继续相同的部署 如果我的主机文件为: [apache-servers] apache1 apache2 apache3 apache4 [tomcat-servers] tomcat1 tomc
- 4反向代理apache
- 4台tomcat服务器
[apache-servers]
apache1
apache2
apache3
apache4
[tomcat-servers]
tomcat1
tomcat2
tomcat3
tomcat4
然后,Ansible停止所有Apache、所有Tomcat、进行部署并重新启动所有组件
所以,我找到了一个做我想做的事的窍门。在运行ansible剧本之前,我必须运行shell脚本来重写主机文件
还有更好的方法吗?在游戏中使用
serial:1
,它将一次在一台主机上运行游戏。在游戏中使用serial:1
,它将一次在一台主机上运行游戏。也许您可以使用委托和串行指令的组合:另一种方法可以是在组上循环并按它们所属的组对主机进行排序(一个组中有一个apache和一个tomcat):也许您还可以找到有用的滚动升级,您可以使用策略以避免以线性方式执行:也许您可以使用委托ans串行指令的组合:另一种方式可以是在组上循环并将主机按其所属的组排序(一个组中有一个apache和一个tomcat):也许您还可以找到有用的滚动升级,您可以使用策略以避免以线性方式执行: