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
username=password,admin

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)
  http://www.redhat.com/products/jbossenterprisemiddleware/fuse/

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 127.0.0.1:46978         0.0.0.0:*       LISTEN      16084/java
tcp        0      0 0.0.0.0:8101            0.0.0.0:*       LISTEN      16084/java
tcp        0      0 0.0.0.0:1099            0.0.0.0:*       LISTEN      16084/java
tcp        0      0 0.0.0.0:61616           0.0.0.0:*       LISTEN      16084/java
tcp        0      0 0.0.0.0:8181            0.0.0.0:*       LISTEN      16084/java
tcp        0      0 0.0.0.0:44444           0.0.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):

[Unit]
Description=JBoss Fuse service
[Service]
Type=forking
ExecStart=/data/jboss-fuse-full-6.1.0/bin/start
RemainAfterExit=yes
User=fuse
Restart=on-failure
RestartSec=60

[Install]
Alias=jboss-fuse.service
WantedBy=multi-user.target


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"/>
org.ops4j.pax.web.cfg:org.osgi.service.http.port=8181
system.properties:org.osgi.service.http.port=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


RSS feed

Blog Tags:

  AWS   Android   Ansible   Apache   Apple   Atlassian   BSD   Backup   Bash   Bluecoat   CMS   Chef   Cloud   Coding   Consul   Containers   CouchDB   DB   DNS   Database   Databases   Docker   ELK   Elasticsearch   Filebeat   FreeBSD   Galera   Git   GlusterFS   Grafana   Graphics   HAProxy   HTML   Hacks   Hardware   Icinga   Influx   Internet   Java   KVM   Kibana   Kodi   Kubernetes   LVM   LXC   Linux   Logstash   Mac   Macintosh   Mail   MariaDB   Minio   MongoDB   Monitoring   Multimedia   MySQL   NFS   Nagios   Network   Nginx   OSSEC   OTRS   Office   OpenSearch   PGSQL   PHP   Perl   Personal   PostgreSQL   Postgres   PowerDNS   Proxmox   Proxy   Python   Rancher   Rant   Redis   Roundcube   SSL   Samba   Seafile   Security   Shell   SmartOS   Solaris   Surveillance   Systemd   TLS   Tomcat   Ubuntu   Unix   VMWare   VMware   Varnish   Virtualization   Windows   Wireless   Wordpress   Wyse   ZFS   Zoneminder