【问题标题】:Blue-Green Deployment in AWS with Ansible使用 Ansible 在 AWS 中进行蓝绿部署
【发布时间】:2017-05-09 01:05:53
【问题描述】:

我正在考虑使用 Ansible 来管理我的 AWS 基础设施;我有(2 台具有自动缩放功能的服务器)。

我将使用ansible-playbook -i hosts deploy-plats.yml --limit spring-boot进行部署

这里是我的deploy-plats.yml

---
- hosts: bastion:apache:spring-boot
  vars:
  remote_user: ec2-user
  tasks:
  - name: Copies the .jar to the Spring Boot boxes
    copy: dest=~/ src=~/dev/plats/target/plats.jar mode=0777
  - name: Restarts the plats service
    service: name=plats state=restarted enabled=yes
    become: yes
        become_user: root

我想知道使用这项技术是否会是蓝绿部署,或者服务器将同时重新启动,从而产生停机时间

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 ansible


    【解决方案1】:

    默认情况下,Ansible 将尝试管理所有引用的机器 在平行的戏剧中。对于滚动更新用例,您可以定义 Ansible 一次应该管理多少个主机,使用 serial关键字:(也许你在寻找这样的东西而不是蓝色 绿色部署)

    - name: test play
      hosts: webservers
      serial: 1
    

    ansible-serial-link

    另外你的剧本不是蓝绿色部署,我建议你阅读一下。

    一点点。蓝/绿部署是一种软件部署策略 这依赖于两个相同的生产配置,它们交替 活跃和不活跃之间。一种环境被称为蓝色, 并且复制的环境被称为绿色。两种环境, 蓝色和绿色,每个都可以处理整个生产工作量并且是 以交替方式使用,而不是作为主要和次要 空间。在任何给定的情况下,一个环境是活动的,另一个是空闲的 时间。当一个新的软件版本准备好时,团队会部署这个 释放到空闲环境,在那里进行彻底的测试。一次 新版本已审核,团队将闲置 环境活跃,通常通过将路由器配置调整为 重定向应用程序流量。这留下了备用环境 闲置。

    【讨论】:

      【解决方案2】:

      默认情况下,Ansible 将并行运行每个任务。您可以设置播放级别指令“串行”以强制它在一个和一个节点上运行播放。这在这里详细描述: "Delegation, Rolling Updates, and Local Actions"

      【讨论】:

        【解决方案3】:

        序列标签必须解决您的问题。将该值限制为 1,以便重新启动任务将以滚动方式执行。

        【讨论】:

          猜你喜欢
          • 2020-07-21
          • 2021-10-08
          • 2019-06-11
          • 1970-01-01
          • 2023-02-04
          • 2019-12-22
          • 2020-07-23
          • 2021-09-16
          • 2017-06-12
          相关资源
          最近更新 更多