最近,我正在研究Ansible,并希望在项目中使用它。此外,还有另一种工具Rundeck可用于完成各种操作工作。我没有使用这两种工具的经验,这是我目前对它们的理解:
相似点
两种工具都是无代理的,并使用SSH在远程服务器上执行命令
Rundeck的主要概念是Node,与Ansible的清单相同,关键思想是定义/管理/分组目标服务器
Rundeck可以在所选节点上执行临时命令,Ansible也可以非常方便地执行此操作。Rundeck可以定义工作流程并在选定的节点上执行,这可以通过编写剧本来使用Ansible来完成Rundeck可以与Jenkins等CI工具集成以进行部署工作,我们还可以定义Jenkins作业来运行ansible-playbook来进行部署工作不同点
Rundeck具有Job的概念,而Ansible没有
Rundeck拥有Job Scheduler,Ansible只能使用Jenkins或Cron任务等其他工具来实现
默认情况下,Rundeck具有免费的Web UI,但您必须为Ansible Tower付费
似乎Ansible和Rundeck都可以用来进行配置/管理/部署工作,也许以另一种方式。所以我的问题是:
这是两个互补工具还是为不同目的而设计?如果它们是互补的工具,那么为什么Ansibl仅与Chef / Puppet / Slat等工具而不是Rundeck相比?如果不是,为什么他们有这么多类似的功能?我们已经在使用Jenkins for CI来构建持续交付管道,哪种工具(Ansible / Rundeck)是进行部署的更好主意?如果可以一起使用,那么最佳实践是什么?任何建议和经验分享将不胜感激。