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").
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:
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...
_ ____ ______
| | _ \ | ____|
| | |_) | ___ ___ ___ | |__ _ _ ___ ___
_ | | _ < / _ \/ __/ __| | __| | | / __|/ _ \
| |__| | |_) | (_) \__ \__ \ | | | |_| \__ \ __/
\____/|____/ \___/|___/___/ |_| \__,_|___/\___|
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 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.