首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Ansible剧本部署应用程序,而不让双方都失望

通过Ansible剧本部署应用程序,而不让双方都失望
EN

Stack Overflow用户
提问于 2015-03-23 21:26:59
回答 2查看 2.6K关注 0票数 2

我正在使用Ansible部署Java应用程序。通过Ansible运行Jenkins游戏手册、将jar文件复制到两个单独的应用服务器(称为节点-01A和节点-01b),部署是非常基本的,这两个服务器都位于Amazon负载均衡器后面。

目前,部署同时发生在节点-01A和节点-01b上。在没有两个节点同时停机的情况下,最简单的方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2015-03-23 22:05:26

您可以为任务使用serial参数。见文档。这是每场比赛。

您还可以使用命令行param --forks=FORKS在剧本级别指定“并行度”。

也许与您无关,但只是为了完整性,让我也来看看引证

在转到下一个任务之前,针对主机模式匹配的所有机器,依次执行任务。

票数 2
EN

Stack Overflow用户

发布于 2015-03-26 21:47:39

我更喜欢运行滚动更新在一个地区的基础上使用标签在一个Ansible剧本。您应该始终将您的ELB服务器放在多个区域中,因此使用该主体是一个好主意。

对于任何一台服务器,假设您有两个标记-应用程序(应用程序:SuperApp作为示例)和AvailabilityZone (可用区域:us-east-1a,AvailabilityZone:us-east-1d )。这样做是为了确保只在两个应用程序都设置为SuperApp时才运行脚本,并且在运行脚本时将AvailabilityZone设置为适当的区域。

这样,在使用ec2.py目录脚本时,我就可以使用一个名为“doCoolStuff.yaml”的包含脚本:

代码语言:javascript
复制
- hosts: tag_Application_SuperApp:&tag_AvailabilityZone_us-east-1a
  gather_facts: False
  roles:
    - doCoolStuffRole
  tasks:
    - include: doCoolStuff.yaml

- hosts: tag_Application_SuperApp:&tag_AvailabilityZone_us-east-1d
  gather_facts: False
  roles:
    - doCoolStuffRole
  tasks:
    - include: doCoolStuff.yaml

当然,您需要在doCoolStuffRole角色和doCoolStuff.yaml包含脚本中做更多的工作,但是整个过程包括在上面。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29220737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档