Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ansible中,是否有一种方法可以按特定顺序进行部署?_Ansible_Ansible Playbook - Fatal编程技术网

在Ansible中,是否有一种方法可以按特定顺序进行部署?

在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

几个月以来我一直在使用Ansible,我对不同主机上的部署顺序有点问题

我有8台服务器:

  • 4反向代理apache
  • 4台tomcat服务器
当我在这些服务器上进行部署时,我必须停止第一个Apache在第一个Tomcat上执行部署。Tomcat1完成后,我必须启动Apache1。之后,我将在所有服务器上继续相同的部署

如果我的主机文件为:

[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):也许您还可以找到有用的滚动升级,您可以使用策略以避免以线性方式执行: