Supercharge WildFly management console with Hal.next console

HAL is the codename for WildFly management console. In this tutorial we will have a preview over the “HAL.next” which is next major version of the HAL management console. It ships with new features and uses the latest GWT release.

What is the HAL management console?

The HAL management console is part of every WildFly and JBoss EAP installation. You can access it through your browser at http://localhost:9990. You might ask you would you need to use a standalone installation of HAL to manage WildFly ? There are mainly two use cases:

  • You can use the Console latest version
    By using the HAL Console in standalone mode you can manage the application server using the latest version of the HAL Console. For example, if you might need the latest bug fix in the Console which is still not available in WildFly.
  • One console to manage multiple WildFly Servers
    You can use one HAL console to connect to multiple WildFly instances. The console can manage and store the connections in an internal registry.

Installing the HAL management console

Before installing the HAL.next management console we need some configuration on the target WildFly server.

Firstly, add a management user to your WildFly installation:

./add-user.sh -u admin -p admin

Then, add the management console allowed origins. SInce we will be running the HAL console on localhost:9090, execute the following CLI command:

/core-service=management/management-interface=http-interface:list-add(name=allowed-origins,value=http://localhost:9090)

Next, let’s install the HAL Console. One option is to build the project from GitHub:

git clone [email protected]:hal/console.git
cd console
./mvnw verify

On the other hand, you can also Download the native HAL Quarkus application for your OS which is available at: https://github.com/hal/console/releases

You can start the native application with just:

$ ./halconsole-3.6.9.Final-linux

Connect to the Hal.next console

Now it’s time to check if everything works as expected so connect to the HAL.next Management Interface at. http://localhost:9090/console/

HAL management console wildfly

Connect and check that you are displaying the new HAL Console:

supercharge wildfly management console

Selection bookmarkable URLs

The first thing worth mentioning is that now every selection done across the Console has its own unique URL. In the standard console only the applications (the screens you normally use to view and modify resources) have an URL. Having an unique URL has also maintenance advantages as you can control or filter through Proxy rewrite rules what the user is selecting:

HAL management console

Drag and Drop deployment

Another cool add-on is that you are allowed to drag and drop deployments from your navigator windows:

HAL management console

Pin subsystems so that they are always at hand

Next, you can check that every subsystem in the configuration can be pinned so that it stays at the top of the panel. This makes easier to pick up the ones you use more frequently

HAL management console

Macro recording

You can record a set of actions you perform on the Management console and save it:

HAL management console

Once you have recorded the macro, simply give it a name so that it can be reused:

HAL management console

Now go on with management changes. When you are done, select from the bottom widget “Stop Macro Recording“. Once done, you can play macro everytime you need it:

HAL management console

Domain topology overview

Another improvement in the Hal.next console is the Domain topology which provides an overview of the servers in each Domain’s host along with their status:

HAL management console

Install extensions

Finally it’s worth mentioning that you can extend the features of the console with extensions. They are written in JavaScript and should use the JavaScript API to build the UI and interact with the management endpoint.

HAL management console

Here is a sample of console headers Extensions, which are available from https://rawgit.com/hal/js-extensions/master/loglevel/extension.json and https://rawgit.com/hal/js-extensions/master/whoami/extension.json

HAL management console

Acknowledgements:

I’d like to thanks Harald Pehl and Claudio Miranda for the awesome work done so far on the Hal.next console and for all the tips shared to write this article!

References:

https://github.com/hal/hal.next

Found the article helpful? if so please follow us on Socials