Need advice about which tool to choose?Ask the StackShare community!
Ansible vs Jenkins: What are the differences?
Ansible is a powerful tool for automation to the provision of the target environment and to then deploy the application. It helps you with configuration management, application deployment, task automation, and also IT orchestration. It can run tasks in a sequence and create a chain of events happening on different servers or devices. Jenkins is a popular tool for IT automation and used for Continuous Integration/Continuous Delivery (CI/CD) to provision the target environment. A must use if the machine environment and deployment process are straightforward. You can add a custom script that will deploy as the final build step.
Within our deployment pipeline, we have a need to deploy to multiple customer environments, and manage secrets specifically in a way that integrates well with AWS, Kubernetes Secrets, Terraform and our pipelines ourselves.
Jenkins offered us the ability to choose one of a number of credentials/secrets management approaches, and models secrets as a more dynamic concept that GitHub Actions provided.
Additionally, we are operating Jenkins within our development Kubernetes cluster as a kind of system-wide orchestrator, allowing us to use Kubernetes pods as build agents, avoiding the ongoing direct costs associated with GitHub Actions minutes / per-user pricing. Obviously as a consequence we take on the indirect costs of maintain Jenkins itself, patching it, upgrading etc. However our experience with managing Jenkins via Kubernetes and declarative Jenkins configuration has led us to believe that this cost is small, particularly as the majority of actual building and testing is handled inside docker containers and Kubernetes, alleviating the need for less supported plugins that may make Jenkins administration more difficult.
Jenkins is a pretty flexible, complete tool. Especially I love the possibility to configure jobs as a code with Jenkins pipelines.
CircleCI is well suited for small projects where the main task is to run continuous integration as quickly as possible. Travis CI is recommended primarily for open-source projects that need to be tested in different environments.
And for something a bit larger I prefer to use Jenkins because it is possible to make serious system configuration thereby different plugins. In Jenkins, I can change almost anything. But if you want to start the CI chain as soon as possible, Jenkins may not be the right choice.
Pros of Ansible
- Agentless272
- Great configuration203
- Simple191
- Powerful172
- Easy to learn149
- Flexible66
- Doesn't get in the way of getting s--- done54
- Makes sense33
- Super efficient and flexible29
- Powerful27
- Dynamic Inventory11
- Backed by Red Hat8
- Works with AWS7
- Cloud Oriented6
- Easy to maintain6
- Procedural or declarative, or both4
- Simple and powerful4
- Easy4
- Simple4
- Because SSH4
- Multi language4
- Consistency3
- Vagrant provisioner3
- Masterless2
- Merge hash to get final configuration similar to hiera2
- Fast as hell2
- Well-documented2
- Debugging is simple2
- Work on windows, but difficult to manage1
Pros of Jenkins
- Hosted internally520
- Free open source463
- Great to build, deploy or launch anything async313
- Tons of integrations243
- Rich set of plugins with good documentation208
- Has support for build pipelines108
- Open source and tons of integrations71
- Easy setup63
- It is open-source61
- Workflow plugin54
- Configuration as code11
- Very powerful tool10
- Many Plugins9
- Git and Maven integration is better8
- Great flexibility8
- Continuous Integration6
- Slack Integration (plugin)6
- Github integration6
- Easy customisation5
- Self-hosted GitLab Integration (plugin)5
- 100% free and open source4
- Docker support4
- Excellent docker integration3
- Fast builds3
- Platform idnependency3
- Pipeline API2
- Customizable2
- Can be run as a Docker container2
- It`w worked2
- Hosted Externally2
- AWS Integration2
- JOBDSL2
- It's Everywhere2
- NodeJS Support1
- PHP Support1
- Ruby/Rails Support1
- Universal controller1
- Easily extendable with seamless integration1
- Build PR Branch Only1
Sign up to add or upvote prosMake informed product decisions
Cons of Ansible
- Hard to install5
- Dangerous4
- Bloated3
- Backward compatibility3
- Doesn't Run on Windows2
- No immutable infrastructure2
Cons of Jenkins
- Workarounds needed for basic requirements12
- Groovy with cumbersome syntax7
- Plugins compatibility issues6
- Limited abilities with declarative pipelines6
- Lack of support5
- No YAML syntax4
- Too tied to plugins versions2