我们正在使用一个构建服务器,该服务器正在委托并将构建部署到应用程序服务器。我不确定我们将如何“序列化”,因为所有操作都在构建服务器(1 台主机)上完成,并且有许多应用程序服务器。构建服务器是唯一能够与应用程序服务器通信的服务器。这不是问题,但我们需要确保逐个部署到应用服务器(当一切正常时将它们踢出/重新进入池中)。有什么建议吗?
答案1
可以使用参数定义 Ansible 播放并行运行的主机数量serial
。
- name: test play
hosts: webservers
serial: 3
来自Ansible 文档:
默认情况下,Ansible 将尝试并行管理剧集中引用的所有机器。对于滚动更新用例,您可以使用 ''serial'' 关键字定义 Ansible 一次应管理的主机数量。在上面的示例中,如果我们有 100 台主机,则“webservers”组中的 3 台主机将完全完成剧集,然后再转到下 3 台主机。
如果您想要逐个部署应用服务器,则需要在您的剧本中定义如下内容:
- name: Deploy app servers one by one
hosts: appservers
serial: 1