A real step by step guide how to install JBoss Fuse

Written by - 5 comments

Published on - Listed in Linux Rant

Most software comes with a decent documentation how to install it, whether if the software is open source or not.

In the case of "JBoss Fuse" I couldn't find a decent documentation where the installation (from a system administrator's point of view) was well described. Not even the good old search engines did me a favor by spitting out a nice how to. Granted, there is the official Red Hat Documentation, but all it basically says there is:

  • Download 6.1.0 -> (missing the information WHICH package to download, because there is a confusing list of different fuse packages available)
  • Unzip the zip package

That's it. The whole "Installing" section in the official JBoss Fuse installation guide as of today.

Let's do it in a way, also a JBoss Fuse newbie understands it.

1. Download (and don't forget Java)

Go to https://www.jboss.org/products/fuse.html and download the zip package starting with "jboss-fuse-full". As of today the current file name is "jboss-fuse-full-6.1.0.redhat-379.zip". A registration on the JBoss website is required.

As an alternative, the fusesource.com repository can be used, too. But it seems that this repository is a bit behind with the newest packages (as of today, version 379 is not yet available on it).

Make sure you have a working Java installation on your system (e.g. test with "java -version").

2. Unzip

Choose your destination path or partition for the installation and unzip the zip file there. I chose /data for my installation, so the commands are:

cd /data
unzip /tmp/jboss-fuse-full-6.1.0-redhat-379.zip

3. Change permissions

You probably don't want to run the JBoss Fuse server as "root" user, so you must adapt the permissions. Let's go for a dedicated user called fuse which we create in the system:

useradd -m -d /home/fuse -s /bin/bash fuse

Give the new fuse user the ownership of the path:

chown -R fuse:fuse /data/jboss-fuse-full-6.1.0

As root, you probably want to keep control over the start and stop scripts and don't want the fuse user to edit them without letting you know. So I set the permissions on the scripts within the "bin" folder that only root can edit them but fuse is able to launch them:

chown root:fuse /data/jboss-fuse-full-6.1.0/bin/*
chmod 750 /data/jboss-fuse-full-6.1.0/bin/*

4. Create JBoss admin user

By default, the packaged installation comes without a defined admin user (to connect to the started JBoss management port 8181). To add an admin user, edit /data/jboss-fuse-full-6.1.0/etc/users.properties and at the end of the file, enter the admin user in the following format:

tail -n 1 /data/jboss-fuse-full-6.1.0/etc/users.properties

You guessed it right, the "admin" after the password is the administrator role. So this user is able to log into the running JBoss Fuse server and can do all kinds of administrative stuff (also a shutdown).

5. Launch JBoss Fuse

Before you go ahead and launch JBoss Fuse, be aware that there are two ways to start JBoss Fuse.

5.1 Interactive Launch

Meaning: You launch it from the console and you're logged into JBoss Fuse console. When you exit this console, JBoss Fuse will shut down.
To start JBoss Fuse in interactive mode, launch (as "fuse" user):

su - fuse; /data/jboss-fuse-full-6.1.0/bin/fuse

This will launch JBoss Fuse and the console, which looks like this:

Please wait while JBoss Fuse is loading...
100% [========================================================================]

      _ ____                  ______
     | |  _ \                |  ____|
     | | |_) | ___  ___ ___  | |__ _   _ ___  ___
 _   | |  _ < / _ \/ __/ __| |  __| | | / __|/ _ \
| |__| | |_) | (_) \__ \__ \ | |  | |_| \__ \  __/
 \____/|____/ \___/|___/___/ |_|   \__,_|___/\___|

  JBoss Fuse (6.1.0.redhat-379)

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.

Open a browser to http://localhost:8181 to access the management console

Create a new Fabric via 'fabric:create'
or join an existing Fabric via 'fabric:join [someUrls]'

Hit '<ctrl-d>' or 'osgi:shutdown' to shutdown JBoss Fuse.

5.2 Launch as a server service

This is, for a system administrator, the more interesting part. Our job is to deliver the service to the developers so we don't want to keep running our session just to keep the JBoss Fuse server alive. No, we want to start the service as a server service. To do so, launch:

su - fuse; /data/jboss-fuse-full-6.1.0/bin/start

And then follow the log, if everything comes up as it should:

tail -f /data/jboss-fuse-full-6.1.0/data/log/fuse.log

Verify with netstat, too:

netstat -lntp | grep java
tcp        0      0*       LISTEN      16084/java
tcp        0      0  *       LISTEN      16084/java
tcp        0      0  *       LISTEN      16084/java
tcp        0      0 *       LISTEN      16084/java
tcp        0      0  *       LISTEN      16084/java
tcp        0      0 *       LISTEN      16084/java

So after all this wasn't that complicated. Once you know how, it's very easy. But without that information bundled together in the installation guide... good luck to get the pieces together by yourself. Hope this small guide is somewhat more comprehensive and helpful to other sys admins.

Add a comment

Show form to leave a comment

Comments (newest first)

ck from Switzerland wrote on Mar 18th, 2019:

Iroshan, at the end I didn't end up to use Jboss Fuse. My client didn't want to use it after all so I didn't create init scripts or systemd unit files. But basically you can copy an existing systemd service unit file and make sure you set the ExecStart command correctly. Using the example of this article this would be (not tested):

Description=JBoss Fuse service


Iroshan from wrote on Mar 18th, 2019:

How to configure fuse in linux to start stop as a service for eg: systemctl start fuse.

Raffi from New York wrote on Jul 27th, 2015:

Great write up, Claudio! I plan to create my own with extra details, but this is a great start

Claudio from Switzerland wrote on May 28th, 2014:

Hello Paul. The port definition of 8181 is set in the following files (in the etc folder):

jetty.xml: <Property name="jetty.port" default="8181"/>

My guess is to simply change these ports to something else. It may even be enough to just adjust jetty.xml. Give it a try and let me know :-)

Paul from New Zealand wrote on May 28th, 2014:

Could you add some info around the port config? I have something else running on port 8181 so I can't get to the admin console at http://myserver:8181