Project 1 — DevOps
With a rich history spanning decades in Industrial IT, I currently serve as a Technical Consultant at onshore. My career has been defined by my unwavering commitment to DevOps and leadership in database administration projects.
Cloud Expertise: I possess extensive knowledge and hands-on experience in the realms of Microsoft Azure and AWS Cloud. I've played a pivotal role in architecting and optimizing cloud solutions that enable businesses to scale, innovate, and thrive.
Cloud DB and DevOps Advocate: My pursuit of excellence never stops. I'm on a constant quest to acquire deep knowledge in Cloud Database solutions and DevOps tools. From Azure DevOps to Jenkins, Ansible to GitHub, Terraform to Docker and Kubernetes, I'm committed to staying at the forefront of industry trends.
I'm passionate about leveraging technology to drive success in industrial IT. Let's connect and explore how my decades of experience and expertise can contribute to your organization's growth and transformation.
Project Description
The objective of this initiative is to streamline the construction, evaluation, and deployment procedures for a web application through the utilization of Jenkins and GitHub. The integration will involve automatic triggering of the Jenkins pipeline via GitHub webhook whenever modifications are made to the code repository. The pipeline will encompass key stages, including building, testing, and deploying the application, and will incorporate notifications and alerts to promptly address any unsuccessful builds or deployments.
Lets start.
Step 1:
As part of requisite we need EC2 instance who has Jenkins and docker alredy installed on it.
Go to aws console and create new EC2 instance as Jenkins server.

Step 2:
Connect to instance using SSH client and install necessary software like Java, Jenkins and docker.

Will create shell script as below and install all necessary software in one go.

Add the executte right to file and trigger the install.sh file.

Step 3:
Verify the installation and Jenkins and docker service.


Step 4:
Add our user and Jenkins user to the Docker group

Step 5: Enable port 8080 of default port of jenkins in security group.

Step 6 : Generate SSH Keys
Generate SSH keys for Jenkins-Git integration using the command


Step 7: Setup Jenkins.
Navigate the Jenkins dashboard at instance-public-IP/8080.

Access the path /var/lib/jenkins/secrets/initialAdminPassword for initial admin password and paste here and click on continue button.
Install suggested plugins in next step.


In next stage will create first admin user.



We are all good now with Jenkins setup and ready to build CI/CD.

Step 8: Create new project (node-todo-project) as free-style project



Will create credentials by providing private key generated in step 4.
In build steps, will select 'Execute shell' and run Docker commands.

Save the configuration and build now.



We have successfully run the docker container with jenkins and able to access code using public-ip:8000

Step 9: GitHub Webhook Integration.
goto github account and navigate setting option.


Click on SSH and GPG Keys and provide public key which was generated in Jenkins server.


Post saving configuration, we could see like below.

Step 10: Set up GitHub webhook
Go to Git-Hub repository setting- > Webhooks->Add Webhook



Enter Jenkins environment URL with "/github-webhook/" at the end in payload URL.
Post all successful setting we could see green tick mark in payload link as below

Step 11: Install GitHub Integration Plugin in Jenkins.
Goto Jenkins->Dashboard->manage jenkins->Plugin.

Search for Github Integration plugin in available plugin and install it.

Step 12: Configure Jenkins for GitHub Integration.
In build triggers, select 'GitHub hook trigger for GITScm polling.'

Step 13: we are all good to test integration. Will make correction in git hub repository and check whether Jenkins start building the project automatically.
In below step i have made change in line #90 and changed background color for home-page.

Let commit the changes and check Jenkins build status.

We can see project build automatically started and successfully completed. in console output we could see build triggered by GitHub push.


Lets verify the changes.

The project deployment has been accomplished successfully, incorporating GitHub with Jenkins. This integration enables the automatic initiation of the project build and deployment processes, with the flexibility for manual intervention as needed.
I hope this article helpful for your future reference.
Thanks,
Kishor Chavan