I wrote DevOps CI/CD pipeline tutorial part 2. Serial the previous article here. This time I will integrate Tomcat Server in CI/CD Jenkins pipeline.
Table of Contents
The content is
- How to set up Tomcat server
- Using Jenkins to Deploy a war file on Tomcat VM
- Deploy on VM through PollSCM
How to Tomcat installation on EC2 instance
Prerequisites
- EC2 instance with Java v1.8.xx
Install Apache Tomcat
Download tomcat packages latest version here
# Create tomcat directory
[ec2-user@Tomcat_Server ~]$ sudo su -
[root@~]# cd /opt
[root@Tomcat_Server opt]# wget https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz
[root@Tomcat_Server opt]# tar -xvzf /opt/apache-tomcat-8.5.50.tar.gz
Executing permissions for startup.sh and shutdown.sh
[root@Tomcat_Server opt]# chmod +x /opt/apache-tomcat-8.5.50/bin/{startup.sh,shutdown.sh}
Create link files for tomcat startup.sh and shutdown.sh
[root@Tomcat_Server opt]# ln -s /opt/apache-tomcat-8.5.50/bin/startup.sh /usr/local/bin/tomcatup
[root@Tomcat_Server opt]# ln -s /opt/apache-tomcat-8.5.50/bin/shutdown.sh /usr/local/bin/tomcatdown
[root@Tomcat_Server opt]# tomcatup
Now, We will access the tomcat application from the browser to port 8080
http://<Public_IP>:8080
But, the default tomcat and Jenkins runs on ports number 8080. Hence I will change the tomcat port number to 8090. Change port number in conf/server.xml file under tomcat home
[root@Tomcat_Server opt]# cd /opt/apache-tomcat-8.5.50/conf
# update port number in the "connecter port" field in server.xml
# restart tomcat after configuration update
[root@Tomcat_Server conf]# cat server.xml | grep '\<Connector port\=\"8090\"'
<Connector port="8090" protocol="HTTP/1.1"
[root@Tomcat_Server conf]# tomcatdown
[root@Tomcat_Server conf]# tomcatup
Access tomcat application from the browser on port 8090
http://<Public_IP>:8090
But the tomcat application doesn’t allow us to log in from the browser. changing a default parameter in context.xml
# comment (<!-- & -->) `Value ClassName` field on files which are under webapp directory.
[root@Tomcat_Server bin]# pwd
/opt/apache-tomcat-8.5.50/bin
[root@Tomcat_Server bin]# find /opt/apache-tomcat-8.5.50 -name context.xml
/opt/apache-tomcat-8.5.50/webapps/host-manager/META-INF/context.xml
/opt/apache-tomcat-8.5.50/webapps/manager/META-INF/context.xml
/opt/apache-tomcat-8.5.50/conf/context.xml
[root@Tomcat_Server bin]# vi /opt/apache-tomcat-8.5.50/webapps/manager/META-INF/context.xml
After that restart tomcat services to effect these changes.
tomcatdown
tomcatup
Update users information in the /opt/apache-tomcat-8.5.50/conf/tomcat-users.xml file
<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"/>
Restart the service and try to log in to the tomcat application from the browser.
Using Jenkins to Deploy a war file on Tomcat VM
I use the plugin “Deploy to container” for Jenkins.
Link Youtube DevOps CI/CD pipeline tutorial part 2
Thank you for reading the DevopsRoles page!
1 thought on “DevOps CI/CD pipeline tutorial part 2”