1. Cloning Repositories
4. Add all changes to local repo
DevOps|SRE|Kubernetes|Istio|AWS|CKA
Manage Jenkins
> Jenkins Plugins
> available
> deploy to container
credentials
> jenkins
> Global credentials
> add credentials
deployer
deployer
deployer
user to deploy on tomcat server
Enter an item name: JavaApp
Source Code Management:
*/master
Poll SCM : - * * * *
Build:
pom.xml
clean install package
Post-build Actions
**/*.war
Tomcat 8.x
deployer
(user created on above)http://<PUBLIC_IP>:8080
Save and run the job now. Once done access by using Public IP and port number 8080
Install Apache Tomcat , You must have EC2 server with JAVA install on that:-
[root@WebServer ~]# cd /opt/
chmod +x /opt/apache-tomcat-<version>/bin/startup.sh chmod +x /opt/apache-tomcat-<version>/bin/shutdown.sh
ln -s /opt/tomcat/bin/startup.sh /usr/local/bin/tomcatup ln -s /opt/tomcat/bin/shutdown.sh /usr/local/bin/tomcatdown
/usr/local/bin
to your $PATH
(if missing)$PATH
:/usr/local/bin
is missing, add it temporarily:/root/.bashrc
or /root/.bash_profile
:[root@WebServer tomcat]# find / -name context.xml
/opt/tomcat/conf/context.xml
/opt/tomcat/webapps/docs/META-INF/context.xml
/opt/tomcat/webapps/examples/META-INF/context.xml
/opt/tomcat/webapps/host-manager/META-INF/context.xml
/opt/tomcat/webapps/manager/META-INF/context.xml
[root@WebServer tomcat]# vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
[root@WebServer tomcat]# vi /opt/tomcat/webapps/manager/META-INF/context.xml
And comment below line in both files by adding
<!-- and at end -->
Add below line in this file at the end:-
[root@WebServer tomcat]# vi /opt/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="admin" roles="manager-gui, manager-script, manager-jmx, manager-status"/> <user username="deployer" password="deployer" roles="manager-script"/> <user username="tomcat" password="s3cret" roles="manager-gui"/>
Now access by using public ip and port 8080 after stopping and starting tomcat server by using below command:-
tomcatdown
Using unique ports for each application is a best practice in an environment. But tomcat and Jenkins runs on ports number 8080. Hence lets change tomcat port number to 8090. Change port number in conf/server.xml file under tomcat home
cd /opt/apache-tomcat-<version>/conf # update port number in the "connecter port" field in server.xml # restart tomcat after configuration update tomcatdown tomcatup
After integration of Maven, Java and Git in Jenkins create new Project in Jenkins with below details:-
In my case my Java code is save in below git repo:-
Then Apply and Save and click on build now:-
Then build will be start after its done webapp.war files will be save in below path:-
Step 1:- Download Maven from official sites:-
https://maven.apache.org/download.cgi
[root@jenkins-server ~]# pwd
/root
[root@jenkins-server ~]# cd /opt/
[root@jenkins-server opt]# ls
[root@jenkins-server opt]# ls
[root@jenkins-server opt]# wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz
--2025-09-05 04:46:31-- https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz
Resolving dlcdn.apache.org (dlcdn.apache.org)... 151.101.2.132, 2a04:4e42::644
Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9160848 (8.7M) [application/x-gzip]
Saving to: ‘apache-maven-3.9.11-bin.tar.gz’
apache-maven-3.9.11-bin.tar.gz 100%[===================================================================================>] 8.74M --.-KB/s in 0.08s
2025-09-05 04:46:32 (113 MB/s) - ‘apache-maven-3.9.11-bin.tar.gz’ saved [9160848/9160848]
[root@jenkins-server opt]# ls
apache-maven-3.9.11-bin.tar.gz
Step 2:- Once downloaded the untar it.
[root@jenkins-server opt]# tar -xvzf apache-maven-3.9.11-bin.tar.gz
apache-maven-3.9.11/README.txt
apache-maven-3.9.11/LICENSE
apache-maven-3.9.11/NOTICE
apache-maven-3.9.11/lib/
apache-maven-3.9.11/lib/aopalliance.license
apache-maven-3.9.11/lib/asm.license
Step 3 :- Rename the folder name
[root@jenkins-server opt]# ls
apache-maven-3.9.11 apache-maven-3.9.11-bin.tar.gz
[root@jenkins-server opt]# mv apache-maven-3.9.11 maven
[root@jenkins-server opt]# ls
apache-maven-3.9.11-bin.tar.gz maven
[root@jenkins-server opt]# cd maven/
[root@jenkins-server maven]# ls
LICENSE NOTICE README.txt bin boot conf lib
[root@jenkins-server maven]# cd bin/
[root@jenkins-server bin]# ls
m2.conf mvn mvn.cmd mvnDebug mvnDebug.cmd mvnyjp
Run the manven command to check:-
[root@jenkins-server bin]# ./mvn -v
Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)
Maven home: /opt/maven
Java version: 21.0.8, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-21-openjdk
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "6.12.0-55.25.1.el10_0.x86_64", arch: "amd64", family: "unix"
Step 4:- Now set environment variable to run from anywhere
[root@jenkins-server bin]# cd ~
[root@jenkins-server ~]# ls
'='
[root@jenkins-server ~]# ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .cshrc .ssh .tcshrc .wget-hsts '='
[root@jenkins-server ~]# vi .bash_profile
[root@jenkins-server ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
M2_HOME=/opt/maven
M2=/opt/maven/bin
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.16.0.8-2.el9.x86_64
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:$JAVA_HOME:$M2_HOME:$M2
export PATH
[root@jenkins-server ~]# source .bash_profile
[root@jenkins-server ~]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/lib/jvm/java-17-openjdk-17.0.16.0.8-2.el9.x86_64:/opt/maven:/opt/maven/bin
[root@jenkins-server ~]# mvn -v
Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)
Maven home: /opt/maven
Java version: 21.0.8, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-21-openjdk
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "6.12.0-55.25.1.el10_0.x86_64", arch: "amd64", family: "unix"
[root@jenkins-server ~]#
Now install Maven plugins in Jenkins and configure path .
Also configure path of git and Java in Jenkins
Step 1: Download below repo
[root@ip-172-31-18-18 ~]# sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
--2025-09-03 10:08:33-- https://pkg.jenkins.io/redhat-stable/jenkins.repo
Resolving pkg.jenkins.io (pkg.jenkins.io)... 146.75.38.133, 2a04:4e42:56::645
Connecting to pkg.jenkins.io (pkg.jenkins.io)|146.75.38.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 85
Saving to: ‘/etc/yum.repos.d/jenkins.repo’
/etc/yum.repos.d/jenkins.repo 100%[===================================================================================>] 85 --.-KB/s in 0s
2025-09-03 10:08:33 (2.71 MB/s) - ‘/etc/yum.repos.d/jenkins.repo’ saved [85/85]
===================================================
Step 2: Download key
[root@ip-172-31-18-18 ~]# sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
Step 1:- Create one file under /etc/yum.repos.d/ with name centos-stream.repo and copy past below lines