gpt4 book ai didi

ansible - 防止使用 Ansible 同时部署

转载 作者:行者123 更新时间:2023-12-02 06:58:33 26 4
gpt4 key购买 nike

我团队中的任何人都可以通过 SSH 连接到我们的特殊部署服务器,并从那里运行 Ansible playbook 将新代码推送到机器。

我们担心如果两个人尝试同时进行部署会发生什么。我们希望做到这一点,以便如果其他人当前正在运行该剧本,该剧本就会失败。

对于如何做到这一点有什么建议吗?标准解决方案是使用 pid 文件,但 Ansible 没有对这些文件的内置支持。

最佳答案

我个人使用 RunDeck ( http://rundeck.org/ ) 作为我的 Ansible playbook 的包装器,原因有多种:

  • 您可以将 RunDeck“作业”设置为只能运行一次(或将其设置为根据需要同时运行任意多次)
  • 您可以在系统内设置用户,以便清楚地审核谁运行了哪些内容
  • 您可以设置其他变量,并对可用内容进行限制(指定选项列表)
  • 它比 Ansible Tower 便宜很多(RunDeck 是免费的)
  • 它具有完整的 API,可用于从构建系统实用地运行作业
  • 您不需要围绕 ansible-playbook 命令编写复杂的 bash 包装器
  • SSH 可以成为“某些东西需要编写 ansible 脚本”的试金石 - 我不允许 SSH 访问,除非完全中断/修复情况,因此我们拥有更满意的 SA
  • 最后,绝对是“最好有”类别中的一个,您可以安排 RunDeck 作业以一种非常简单的方式运行 ansible playbook,以便任何登录到控制台的人查看正在运行的内容

当然还有很多更好的理由,但我的手指已经厌倦了打字;)

关于ansible - 防止使用 Ansible 同时部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21869912/

26 4 0
文章推荐: django - Django中获取特定半径内的所有点
文章推荐: select - React,无法选择