Message-ID: <11399544.81.1710847312011.JavaMail.serveradmin@t01app> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_80_32836082.1710847312002" ------=_Part_80_32836082.1710847312002 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html 5.0 Zero Footprint Tomcat Instances

5.0 Zero Footprint Tomcat Instances

=20 =20

Introduction

This is a method of installing and running Tomcat in a way that is porta= ble and part of the BonsaiFramework 0FS approach. Tar (zip) up the directory and move your entire application server = or duplicate it with a copy command.

This work comes from a corporate environment where isolation, control an= d ease of upgrade with a fallback are very important. Also, allows for fast= horizontal or vertical scaling where multiple Tomcat instanc= es are run on the same machine.

Also this also sets your application to moving towards cloud containor i= mplementations like LXC or&nbs= p;Docker.

The key concept here is that we setup Tomcat and Java as an isolated pac= kage. There is no install. As long as you have matching serveradmin GUID's across sys= tems you may transport your package with tar.

Software Stack Selection,

  • Java SE Runtime Environment (JRE) =3D 6 Update 16
  • Tomcat =3D 6.0.20

Here is a diagram of what we will be building,

=20 =20 =20 =20
=20 =20 =20 =20 =20 =20
=20
3D""
=20

Shortcut

Everything is all packaged up at http://www.bonsaiframework.com/downloads/0fs-tomcat-linux/,

Package Version Comments Next Step Version
v0.1 Basic Tomcat with Java embedded. This should be = run only as serveradmin per the Bonsai approach to server = management. Ongoing Maintenance with new versions of Java an= d documentation of who's using it and where.
v0.2 Harden Tomcat and maintain a log.<= /td> ... will be done as part of the Bo= nsai group work ...
v0.3 Rolling Logs Fix catalina.outlog rotation (determine best route) and petition to get this = fixed. Kevin looking into this.

Install an unzip using a staff account. The use of sudo= is necessary to retain permission,

=20
wget ht=
tp://www.bonsaiframework.com/downloads/0fs-tomcat-linux/0fs-tomcat.tar.gz #=
 this symbolically points to the latest 64-bit version

# NOTE - to work properly ensure serveradmin is setup per Bonsai instructio=
ns!
#

sudo tar -xvpf 0fs-tomcat.tar.gz # sudo will ensure the permissions and use=
rs are kept
sudo mv /0fs-tomcat/ /opt/


# Optionally if you want to follow the Bonsaiframework convention and also =
let users belonging to "staff" group to view files and restrict others,
cd /opt/
sudo chown -R serveradmin:staff ./0fs-tomcat/
sudo chmod -R o-rwx ./0fs-tomcat/
sudo chown -R serveradmin.staff ./0fs-tomcat/
=20

You are now ready to go and start Tomcat as= serveradmin,

=20
su - se=
rveradmin
cd /opt/0fs-tomcat/bin/
./startup.sh
=20

Verify Tomcat is running,

=20
ps -ef =
| grep java

=20

To stop Tomcat,

=20
su - se=
rveradmin # if not already serveradmin
cd /opt/0fs-tomcat/bin/
./shutdown.sh
=20

That's it.

Tomcat a= nd serveradmin

I will re-iterated that you should= run Tomcat or any public facing service for that matter as serveradmin.&nb= sp;As no= ted in account creation, this is = for security reasons. In the event that Tomcat is somehow attacked, the com= promise would be limited to serveradmin which has reduced limited priviledg= es.

Further to this, using a central account ensures consistency.

For audit purposes, make sure to log in with your own staff id first and= then sudo into serveradmin for managing Tomcat. In true Cloud world where = everything works as a recipe, use your recipes to make Tomcat adjustments.<= /p>

Directory = Structure

The directory structure will be as follows,

/opt/ - root directory for all our applications and services (anything c= ustom if possible should be here)

/opt/0fs-tomcat - directory for Tomcat running on port 8180
/opt/0fs= -tomcat/java - directory we will place java for Tomcat

First step, create the apache directory under opt,

=20
su - bh=
itch # We need a staff user who can sudo
cd /opt
sudo mkdir apache
sudo chown -R serveradmin:staff ./apache # Make sure serveradmin can use th=
e folder.
=20

Manually Set= up JRE

Go to the Java website, choose the 64-bit JRE (Java = Runtime Engine). Download the .tar.gz file and upload= the file to the serveradmin home folder. For older versions of Java go to = the Java Archives site.

Use the account that will be launching the Java process. In this example= it will be serveradmin,

=20
su - se=
rveradmin # If you are not already serveradmin
cd ~
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=3D=
accept-securebackup-cookie" http://download.oracle.com/otn/java/jdk/7u7-b10=
/jre-7u7-linux-x64.tar.gz
=20

The steps for JRE and JDK are both the same. Here is an example of a JRE setup,

=20
su - se=
rveradmin # If you are not already serveradmin
cd ~ # Switch to the serveradmin home directory
tar -xvpf jre-7u7-linux-x64.tar.gz
=20

The result will be an uncompressed jre directory using the same name as = the package. In this example the folder name would be, jre-7u7-linu= x-x64.

If you plan to use multiple versions of Java, we recommend keeping the f= older name with the version number information and using symbolic links. If= you are only using one version of Java, then simply rename the folder.

For the server example, we will rename the folder,

=20
mv jre-=
7u7-linux-x64 java
=20

You may be interested in how to Zero Footprint Java on Windows.

Leave the setup Java folder alone for now. It will be moved into the Tom= cat folder as part of the Tomcat setup.

Manually Setup Tomcat and Package Java In

By manually setting up Tomcat there is much more control and you can run= multiple tomcat instances. Download tomcat. The tar.gz file is used becaus= e permissions are already setup such as execute for startup.sh= . A zip file will lose the permissions.

Go to the Apache Tomcat download site.

=20
su - se=
rveradmin
cd ~
tar -xvpf apache-tomcat-6.0.20.tar.gz # All the permissions will be kept
mv ./apache-tomcat-6.0.20/ ./0fs-tomcat/
exit # Switch back to your staff account
=20

Next move the extracted Java folder into your tomcat folder,

=20
mv ./ja=
va/ ./0fs-tomcat/
=20

Log in as your staff account which has sudo access to perform the actual= move to /opt/

=20
cd /hom=
e/serveradmin
sudo mv ./0fs-tomcat/ /opt/apache/
=20

Only Allow serveradmin to Run Tomcat<= /span>

Setting up and running Tomcat with serveradmin has the = advantage that you can manage the Application server without having to go i= nto root. It's also makes things much safer if somebody breaks into Tomcat.=

We want to ensure that only serveradmin starts Tomcat to prevent any iss= ues with permissions. For example, once you start Tomcat as root you m= ay find log files spawned from during startup can no longer be managed by s= erveradmin.

First login as serveradmin. All modification to Tomcat and running of to= mcat will happen as serveradmin.

=20
su - se=
rveradmin
=20

Modify Tomcat's /opt/0fs-tomcat/bin/startup.sh and opt/apache/0fs-tomcat/bin/shutdown.sh to only allow serveradmi= n to start and stop Tomcat.

Do this by adding the block of lines marked with # Bonsaiframework as sh= own below,

=20
#!/bin/=
sh

# Bonsaiframework - Modification Start
# --------------------------------------
if [ "$LOGNAME" !=3D "serveradmin" ]; then
echo "This service should only managed with the user serveradmin"
exit 1
fi
# --------------------------------------
# Bonsaiframework - Modification End

# Licensed to the Apache Software Foundation (ASF) under one or more
=20
Challenge to a reader after learning this. Make the above edit automated wi= th copy and paste with sed and wget like my other tutorials.

Bind Tomcat to Java Using setenv.sh

Tomcat can be run with a separate version of JRE or JDK that is not the = default system version. To do so, you will have to explicitly set the JRE_H= OME variable. The JAVA_HOME variable is also configured as some application= s will want to make use of this variable instead.

Tomcat has a facility for this via a file called setenv.sh which actually does not exist by default. As soon as you create the fil= e, Tomcat will run setenv.sh as part of its startup.

First, let's run the Tomcat diagnostics to see what happens. Because we = have no default java and Tomcat does not know about it we should expect a m= essage that we need Java.

=20
su - se=
rveradmin # If you are not already serveradmin.
cd /opt/0fs-tomcat/bin
./version.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program=20

So now let's create the setenv.sh file. As serveradmin = create /opt/0fs-tomcat/bin/setenv.sh using your favourite = editor. Your file contents will look like this,

=20
#!/bin/=
sh

# Bonsaiframework - Modification Start
# --------------------------------------
JRE_HOME=3D"$CATALINA_HOME"/java
JAVA_HOME=3D"$CATALINA_HOME"/java
# --------------------------------------
# Bonsaiframework - Modification End

=20

The $CATALINA_HOME is a script variable that is established by Tomcat to= set the directory it is running from.

Now  exeucting version.sh works,

=20
./versi=
on.sh
Using CATALINA_BASE:   /opt/0fs-tomcat
Using CATALINA_HOME:   /opt/0fs-tomcat
Using CATALINA_TMPDIR: /opt/0fs-tomcat/temp
Using JRE_HOME:       /opt/0fs-tomcat/java
Server version: Apache Tomcat/6.0.20
Server built:   May 14 2009 01:13:50
Server number:  6.0.20.0
OS Name:        Linux
OS Version:     2.6.31-302-rs
Architecture:   amd64
JVM Version:    1.6.0_16-b01
JVM Vendor:     Sun Microsystems Inc.
=20

Using this method, you can have different Tomcat instances running diffe= rent versions of Java and control when you want to move between Java versio= ns.

Secure Directory

Finally, because this is a multi-user machine, we secure tomcat from oth= er users and processes. The only users should be serveradmin for read and w= rite and staff for read to debug. All others should not even be able to go = into the directory.

Change the permissions,

=20
cd /opt=
/
sudo chown -R serveradmin:staff ./0fs-tomcat/ # Only serveradmin and staff =
can manage files.
sudo chmod o-rwx ./0fs-tomcat/ # Remove "other" from getting any access.
sudo chown -R serveradmin.staff # Ensure new files created follow the Direc=
tory's setgid.
=20

However, this is not enough. Any new files created in those directories = will change to what the particular user has set in terms of that user's gro= ups. This also includes the process user serveradmin. The log files created= when the process starts will belong to serveradmin user and serveradmin&nb= sp;group - = which we don't want. So to fix this we tell the directory to set the=  setgid bit,

=20
cd /opt=
/
sudo chown -R serveradmin.staff # Ensure new files created follow the Direc=
tory's setgid.
=20

Verify= Process is Running

Finally startup your Tomcat instances and verify that they are listening= ,

=20
su - se=
rveradmin

cd /opt/0fs-tomcat/bin/
./startup.sh

netstat -an | grep LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 127.0.0.1:8105          :::*                    LISTEN
tcp6       0      0 :::8009                 :::*                    LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
unix  2      [ ACC ]     STREAM     LISTENING     7376     @/com/ubuntu/ups=
tart
unix  2      [ ACC ]     STREAM     LISTENING     11434    /var/run/fail2ba=
n/fail2ban.sock
unix  2      [ ACC ]     STREAM     LISTENING     21228    /var/run/apache2=
/cgisock.4973
=20

Notice that here we have started Tomcat and it is listening on port 8009= and 8080.

Tomcat by default will have a sample application installed and running.<= /p>

If you have a firewall setup do not forget to open port 8080 for testing= and then close them afterwards if you plan to front with the Apache Web Se= rver.

If your server has a web browser you can load the examples page using http://localhost:8080/examples/. From another computer you can = see the examples application by browsing to, http://www.kry= pton.com:8080/examples/ where if www.krypton.com is not a real dns= , use the server's IP address or add a host file entry to your client syste= m.

Additional L= ayers

In my experience all my real world systems do not need any more layers t= o Tomcat. However, there are some odd scenarios which are covered here.

Automatic Startup and Shutdown of Tomcat

Not recommend until you proper monitoring in place. If you system reboot= s you want to know about it.

Even then, most Enterprise simply do not have automatic startup setup. T= he closest I have personally seen is a delayed startup. The reason being th= at the appliction server itself may hang the entire machine.

In a Cloud world this is more self-contained so this section will be wri= tten out in the future.

This section is still to be written.

Setup SSL on= Tomcat

For testing purposes or if the only thing you want to do is encrypt the = channel of communication you can Setup a Self-Signed Certificate for Tomca= t.

Otherwise, Setup of a Real SSL Certificate for Tomcat is very similar = but with a few extra steps.

The more enterprise solution is to front Tomcat with Apache and setup <= a href=3D"/wiki/display/bonsai/4.4+Apache+and+SSL+Certificates">SSL on Apac= he.

Make Your Own 0FS TAR Package

Once you are happy with your setup you can make your own package. Using = your staff account,

=20
cd /opt=
/
sudo tar -czvf 0fs-tomcat.tar.gz ./0fs-tomcat/ # Don't change the parameter=
 orders. 
=20

Notice the use of sudo to run the tar = command. This ensures that proper ownership and permissions will carry over= to the new system.

Before unpacking to the target system, ensure the users, groups and GUID match followin= g the Bonsai Standards.

References

http://wiki.apache.org/tomcat/FAQ/Chara= cterEncoding#Q9 - still to finish reading

http://confluence.atlassian.com/displ= ay/DOC/Configuring+Tomcat%27s+URI+encoding?focusedCommentId=3D231343170&= ;#comment-231343170 - Confluence related notes

------=_Part_80_32836082.1710847312002 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: file:///C:/b910073a5e08f1537ef0c991edbd56e4 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 aeetY2gAAAAASUVORK5CYII= ------=_Part_80_32836082.1710847312002--