Gan*_*h P 70 hudson jenkins ansible
最近,在我们公司,我们决定使用Ansible进行部署和持续集成.但是当我开始使用Ansible时,我找不到用于使用Maven构建Java项目的模块,或者用于运行JUnit测试或JMeter测试的模块.
所以,我处于一个令人怀疑的状态:可能是我以错误的方式使用Ansible.
当我查看Jenkins时,它可以执行构建,运行测试,部署等操作.Hudson缺少的是在AWS等云环境中创建/删除实例.
那么,一般来说,我们需要使用Ansible/Jenkins的目的是什么?对于CI,我需要使用Ansible和Jenkins的组合吗?
请详细说明Ansible的正确用法.
ted*_*r42 121
首先,Jenkins和Hudson基本上是同一个项目.我将在下面将其称为Jenkins.请参阅如何在Hudson和Jenkins之间进行选择?,Hudson vs Jenkins在2012年,Jenkins和Hudson之间最显着的区别在于用户的观点?更多.
其次,Ansible并不是一个持续的集成引擎.它(通常)不会轮询git repos并运行以理智方式失败的构建.
如果您的机器环境和部署过程非常简单(例如在团队之外配置的Heroku或铁),Jenkins可能已经足够了.您可以编写一个自定义脚本,将其作为最终构建步骤(或链接步骤)进行部署.
如果您只需要"部署"而无需构建/测试,Ansible可能就足够了.例如,您可以从命令行或使用Ansible Tower运行部署.这对于小型项目,静态站点等非常有用.
一个很好的组合是使用Jenkins构建,测试和保存工件.添加一个步骤来调用Ansible或Ansible Tower来处理实际的部署过程.这允许Ansible处理机器配置并让Jenkins处理CI过程.
我强烈推荐Thoughtworks Go(不要与Go语言混淆)而不是Jenkins.其他包括CruiseControl,TravisCI和Integrity.
mvk*_*_il 15
Ansible只是一个"美化的SSH循环".CI不仅是软件运行,而且是处理成功和失败的过程,谁获得通知以及如何将更改合并到目标版本控制中的整个过程.
如果我们只关注软件,那么CI是由代码更改触发的反应式调度程序,并触发"步骤"的典型构建 - 验证 - 释放 - 部署序列.
所以在软件方面,没有额外"加糖"的Ansible只是一个运行工具包,可以是那些非常步骤,但它不是CI.Ansible(没有塔)完全没有这种反应性质.
如果你想将Ansible与CI结合,你可以.
Ansible塔是一个非常安静的调度程序,但如果你需要CI软件,我认为你不一定需要它.任何能够运行shell脚本的CI应用程序都能够启动Ansible playbooks.
然而,与Ansible塔不同,CI工具知道显示所有测试框架的测试报告,触发通知等.
Ansible塔可以在复杂的环境中有意义,有许多团体触摸Ansible代码......事实是我没有看到一个真正的理由来支付它.但是,如果经理喜欢网络界面,那么没有什么能够"但其他人使用它"逻辑.
我怀疑Ansible塔的概念是对傀儡企业的回应.
:)
归档时间: |
|
查看次数: |
40071 次 |
最近记录: |