【问题标题】:Ansible or Jenkins pipelines for bigger jobs用于更大工作的 Ansible 或 Jenkins 管道
【发布时间】:2017-08-09 15:39:57
【问题描述】:

目前我们正在使用 Jenkins 管道和 Ansible 剧本的组合。通常我们最终会得到简短的 ansible playbook,它们要么在 Jenkins 管道内运行,要么作为 jenkins 工作运行。

对于更复杂、多步骤的工作,有什么更好的方法?

例如,一份工作包括:

  1. 从 AMI 启动 ec2 实例
  2. 运行迁移
  3. 拉取最新代码,编译重启
  4. 从临时实例创建新的 AMI
  5. 终止临时实例

我确实喜欢这样一个事实,即我可以在 Jenkins 管道中处理用户输入以及管道中每个步骤的图形表示。在上面的示例中,每个步骤都可能是它自己的小 ansible 剧本。将参数从 playbook 传递到 playbook 并不是那么简单,但我们知道该怎么做。

我不能 100% 确定我这样做是否达到了最佳标准,因为在创建这些管道期间我认为这应该是 ansible 的,反之亦然。

这两者有什么最佳搭配吗?

【问题讨论】:

    标签: jenkins ansible devops


    【解决方案1】:

    嗯,你确实很清楚每个工具带来的局限性,

    最佳选择是最适合您和您的公司的方法,现在,问问自己哪种方法更易于管理?缩放时哪个会变得过于复杂?

    我已经完成了这两种方法,发现 jenkins 的管道工具似乎在“可读性”和易于管理方面具有最佳效果,当我们有机会为团队带来新成员时,这一点尤其明显他们可以通过查看我们在 jenkins 上的管道来快速了解流程,

    现在,我们还使用了 jenkins (just ci) + nexus (artifact management) + octopus (just cd) + ansible (provisioning) 的组合来处理复杂管道上的一切,

    再一次,问问自己什么会更容易管理,什么最有可能随着时间的推移而增长(管道上的步骤数、管道或作业的数量、要管理的服务器数量等...)并采取基于此的决定,

    最好的问候,

    【讨论】:

    • 是的,我认为它不会是直截了当的答案。我绝对喜欢将 ansible 用于部署、架构管理等,纯粹是因为它的插件和易于连接到可扩展实例。但管道似乎是“协调”整个过程的更好选择
    • 没错,即使那样,您也可以只拥有动态库存之类的东西,并在 jenkins 管道上迈出一步来配置整个服务器群。您还可以查看发布管理工具,在易用性方面我还没有真正找到章鱼部署的替代品,而且它可以帮助您的团队获得更高级别的流程视图,这样您就知道在哪个环境中哪个状态并且可以轻松复制旧版本并以更安全的方式回滚!
    • 我最初写的管道差不多完成了,肯定学到了很多。 Ansible 和 Jenkins 文档......哦,天哪......我之前确实看过章鱼,但我认为我们忽略了它,因为它太贵了
    • 它对于小型项目是免费的,但是,我在尝试它的那一分钟就完全爱上了它,事实上你处理的“发布”只是管道执行的实例,这使得这个过程更容易追踪!即您更改了管道中的某些内容,部署了它并破坏了某些内容。您只需单击在此之前部署的版本,章鱼将按照与早期版本完全相同的方式执行管道,它甚至会保留变量!
    • 哦,jenkins 也可以在上面创建和触发发布/部署,所以集成可以随心所欲!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2021-03-22
    相关资源
    最近更新 更多