【问题标题】:ansible parallel deploymentansible 并行部署
【发布时间】:2015-12-08 00:03:54
【问题描述】:

经过几天的研究并碰壁决定在这里提问: 是否可以在 aws 上使用单个 ansible playbook 并行部署。目前部署 EC2 实例对我们来说大约需要 5 分钟,而 RDS 大约需要 15-20 分钟。有没有办法并行部署所有 EC2 实例和 RDS 实例。在此先感谢您的帮助。 更新: 或者有没有办法在一个主机和一个剧本中同时执行两个任务

【问题讨论】:

  • @slugonamission 不是真的,因为只有一个主机和共享变量。尝试了那些可能的解决方案,但他们没有做需要做的事情。我想有什么东西可以同时执行两个任务

标签: amazon-web-services ansible ansible-playbook


【解决方案1】:

看看一个名为Packer的工具

它声明它可以“为多个平台并行创建机器映像”。然后,您可以调用 ansible 来配置 EC2。

如果创建多个类似的 EC2 实例,请尝试在同一任务中指定 count 属性:

http://docs.ansible.com/ansible/ec2_module.html

数数 | 1 |要启动的实例数

编辑

作为对评论的回应,您能否在创建 EC2 时设置“等待:否”(等待 AMI 在返回之前处于“可用”状态)。您仍然可以将实例注册为变量,但 ansible 将转移到下一个任务,例如 RDS。要在退出之前等待两个组完成,请使用 wait_for 模块并循环遍历项目,例如:

- name: Wait for the instances to boot by checking the ssh port
   wait_for: host={{item.private_ip}} port=22 delay=60 timeout=320 state=started
   with_items: ec2.instances

这将在后台同时启动所有实例,使您能够在等待 RDS 启动时首先配置 EC2。

【讨论】:

  • 这3个实例在配置方面是相同的,在使用方面是不同的,因此它们是以不同的方式构建的。 Packer 同时适用于多个实例,但我正在寻找 RDS 和实例。
  • 请参阅上面的编辑以在 EC2 的同时执行 RDS。
猜你喜欢
  • 2021-06-04
  • 2016-03-29
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多