最近,在我们公司,我们决定使用Ansible进行部署和持续集成。但是,当我开始使用Ansible时,我没有找到用于使用Maven构建Java项目的模块,也没有找到用于运行JUnit测试或JMeter测试的模块。
所以,我的状态令人怀疑:可能是我以错误的方式使用了Ansible。
当我看着Jenkins时,它可以完成诸如构建,运行测试,部署之类的工作。哈德森(Hudson)缺少的一件事是在AWS之类的云环境中创建/删除实例。
因此,总的来说,我们需要出于什么目的使用Ansible / Jenkins?对于CI,我需要结合使用Ansible和Jenkins吗?
请说明正确使用Ansible的方法。
首先,詹金斯和哈德森基本上是同一项目。我在下面将其称为詹金斯。请参阅如何在哈德森和詹金斯之间进行选择?,Hudson vs Jenkins(2012年),以及从用户角度来看,Jenkins和Hudson之间最显着的区别是什么?更多。
其次,Ansible并不是要成为一个持续集成引擎。它(通常)不会轮询git repos并运行以理智方式失败的构建。
如果您的机器环境和部署过程非常简单(例如在团队外部配置的Heroku或Iron),那么Jenkins可能就足够了。您可以编写一个自定义脚本,将其作为最后的构建步骤(或链接的步骤)进行部署。
如果您只需要“部署”而不需要构建/测试,那么Ansible可能就足够了。例如,您可以从命令行或使用Ansible Tower运行部署。这对于小型项目,静态站点等非常有用。
一个好的组合是使用Jenkins来构建,测试和保存工件。添加一个步骤来调用Ansible或Ansible Tower以处理实际的部署过程。这使Ansible可以处理机器配置,并让Jenkins处理CI流程。
我强烈建议使用Thoughtworks Go(不要与Go语言混淆)而不是Jenkins。其他包括CruiseControl,TravisCI和Integrity。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句