Introduction to Is Jenkins Free
Are you thinking about is Jenkins free and using it for making the build files to be deployed? The choice is right indeed !!
- Jenkins is absolutely free i.e open-source tool and helps in automating all kinds of tasks associated with the building, testing, delivering and deploying an application.
- Jenkins can be installed through system packages provided or can run alone provided JRE is installed in the machine.
- The jargons like continuous integrations and continuous delivery are well satisfied by Jenkins.
- Thousands of plug-ins are there to make work easier, so free Jenkins and along with free plug-ins, making the life of developers and DevOps easy.
- Jenkins is available for all platforms and different operating systems.
- It helps developers to prevent erroneous integrations, most integration work is automated.
Before exploring Jenkins in your machine, please meet the following requirements associated with the machine :
- RAM: Greater than 256 MB
- 10 GB of drive space (for Jenkins and docker image), note that this needs a huge memory.
- Docker or Java 8 installed
How to run Jenkins?
- Get Jenkins downloaded from http://ftp-chi.osuosl.org/
- Run java -jar Jenkins.war –httpPort=8080 from terminal window.
- Then browse to http://localhost:8080
- Whenever the developers commit the code to respective SVN/GIT repositories then the response is generated by Jenkins and fed back to the developers telling whether the committed code was successfully built or were there any issues (like DTO being non-updated corresponding to the database schema is one of the common problems for novice developers), so Jenkins easily figures out such problems.
- The benefit of such continuous integration procedure is that the developers get to know about errors on the basis with build failure and if it passes then Jenkins deploys the build on the test server.
- The process of checking the source code commits in the repository goes in an infinite loop for Jenkins. It’s always watchful for those changes.
Important and Typical Features of Jenkins
Below are the features:
- Role-based access control
- Simplified administration – administrators are facilitated in Jenkins using the Graphic User Interface.
- High Availability – As it’s built on top of java, we can use any application server with high availability.
- Scalability – Highly scalable thereby it becomes optimum performance tool.
- Advanced Security – Are you using LDAP in your application for role management and authorization? Then Jenkins is here to give integral support with LDAP.
- Lightweight container support – Provides support for various frameworks like a docker.
- Distributed Development – Jenkins facilitates managing a team using distributed development.
Below are the architecture:
1. Master-Slave Architecture
In the master-slave model, Jenkins server acts as the master and takes care of distributing the jobs to be executed by the slaves and the slaves acknowledge the master by sending the reports against the task performed ( like sending the result of the testing task performed by slaves to the master).
2. Master-Master Architecture
In this architecture, the masters share the slaves and they share the security too. So in the failure case, the other masters are aware too, so the jobs which are being run by slaves are logged in both of the masters here.
Configuring Jenkins Automation Tools and setting up projects
You need to make certain other software installations in this process prior to Jenkins configuration and set certain system properties too.
- Download Eclipse
- Download maven binary zip file from https://maven.apache.org
- System variables to be added for maven if they are not present in your system
- Var name = M2_HOME, its value shall be set to the value of apache-maven directory you downloaded.
- Var name = path, its value shall be set to the bin folder of maven
- SVN/GIT shall be installed.
- Now just execute the Jenkins URL provided at the top to navigate onto the dashboard page, a screen as shown below would appear
Now click on Create new jobs option, a screen as shown would appear
- In the freestyle project, we can build process or jobs using triggers from any build system
- The Pipeline type is used when we are orchestrating complex build tasks spanning across multiple slaves.
- In the multi-configuration project, there are different destinations across those we can test our code.
Now let’s create a freestyle project :
After adding these general settings, we are supposed to add source code management properties.
So likely if you are working with SVN, you can choose from here, build triggers represent the time when the builds are to be initiated automatically.
We can invoke shell commands or ant in the build step.
Similar to this we can navigate to Post-Build Actions, which represents the tasks to be undertaken when the build completes.
Saving this all data, will create a project for us and a dashboard will be there from where we can manage build history, check the user who made commits, etc.
Important plug-ins in Jenkins
- LDAP plugin
- Mailer plugin
- Docker common plugin
- PAM authorization plugin
Jenkins provides the plugins manager where we can manage the following tasks :
- Adding a plugin
- Manage plugin
- Upgrade plugin
- Can add required plugins when starting up
Plug-in categories :
- Source Code Management – Git, SVN, Bitbucket
- Build tools – Ant, Gradle, Maven
- Distributed build – window-slaves, Matrix-project
- Build Analysis & Reporting – Junit, Warnings
Jenkins 2.0 features and Enhancements
- Backward compatible – you can install the new version without handling dependencies of the previous version ( can be done automatically by Jenkins).
- Improved usability.
- Built-in pipeline support, hence no extra requirement of setup.
- Create job page enhancements.
- Job configuration page has been improved compared to the previous version.
This has been a guide to Is Jenkins Free. Here we have discuss the basic concepts about Jenkins with Important and typical Features of Jenkins. You may also look at the following articles to learn more: