Romain Pelisse

Areas of Expertise

Java, Bash, Ansible

Recent Posts

WildFly server configuration with Ansible collection for JCliff, Part 2

WildFly server configuration with Ansible collection for JCliff, Part 2

Welcome to the second part of this series introducing Ansible collection for JCliff. This new extension is designed for fine-tuning WildFly or Red Hat JBoss Enterprise Application Platform (JBoss EAP) configurations using Ansible. In Part 1, we installed JCliff and its Ansible collection and prepared our environment. We set up a minimal, working playbook for installing JCliff on the target system. In this article, we will focus on configuring a few of our WildFly server’s subsystems.

Continue reading WildFly server configuration with Ansible collection for JCliff, Part 2

WildFly server configuration with Ansible collection for JCliff, Part 1

WildFly server configuration with Ansible collection for JCliff, Part 1

This three-part series guides you through using Ansible to fine-tune a WildFly or Red Hat JBoss Enterprise Application Platform (JBoss EAP) server configuration. We will use the most recently released version of the Ansible collection for JCliff to extend Ansible’s capabilities. The JCliff collection supports configuring several of the application server subsystems directly from Ansible.

In Part 1, we will mostly focus on the groundwork and discuss all the steps required to be able to use JCliff within Ansible. Once properly installed, we’ll use JCliff to configure WildFly’s system_props subsystem, which lets us declare system variables in the WildI guesFly server configuration. Once we have that foundation in place, we’ll begin exploring more interesting configurations in Part 2 and Part 3.

Note: See the Ansible documentation for more about Ansible collections.

Continue reading “WildFly server configuration with Ansible collection for JCliff, Part 1”

Managing JBoss EAP/Wildfly using Jcliff

Managing JBoss EAP/Wildfly using Jcliff

Systems management can be a difficult task. Not only does one need to determine what the end state should be but, more importantly, how to ensure systems attain and remain at this state. Doing so in an automated fashion is just as critical, because there may be a large number of target instances. In regard to enterprise Java middleware application servers, these instances are typically configured using a set of XML based files. Although these files may be manually configured, most application servers have a command-line based tool or set of tools that abstracts the end user from having to worry about the underlying configuration. WebSphere Liberty includes a variety of tools to manage these resources, whereas JBoss contains the jboss-cli tool.

Although each tool accomplishes its utilitarian use case as it allows for proper server management, it does fail to adhere to one of the principles of automation and configuration management: idempotence. Ensuring the desired state does not equate to executing the same action with every iteration. Additional intelligence must be introduced. Along with idempotence, another core principle of configuration management is that values be expressed declaratively and stored in a version control system.

Jcliff is a Java-based utility that is built on top of the JBoss command-line interface and allows for the desired intent for the server configuration to be expressed declaratively, which in turn can be stored in a version control system. We’ll provide an overview of the Jcliff utility including inherent benefits, installation options, and several examples showcasing the use.

Continue reading “Managing JBoss EAP/Wildfly using Jcliff”


Un module Puppet pour tuned-adm (Français)

Il y a quelques mois, j’ai développé et publié une petite extension Puppet pour tuned-adm. En effet, cette commande est une fonctionnalité assez appréciable de RHEL, et il m’a semblé donc pertinent d’évoquer cette dernière sur Red Hat developer blog.

Tour d’horizon de ‘tuned-adm’

Pour faire court, cette commande va s’occuper des nombreux fins réglages du système d’exploitation pour vous, selon l’usage que vous souhaitez faire de ce dernier. Par exemple, si vous utilisez le système comme un simple serveur, vous pourrez utiliser le profil prédéfini ‘throughput-performance’. Si vous utilisez votre système sur un portable, à des fins de bureautique, vous opterez probablement pour le profil ‘powersave’, qui optimise le noyau pour réduire autant que possible la consommation de la batterie.

Pour vous donner une meilleure idée des profils disponibles, il suffit d’exécuter sur son système la commande suivante:

Continue reading “Un module Puppet pour tuned-adm (Français)”


JCache and Infinispan – standardize your application's cache

With the adoption growth of Infinispan, its community has been resurrecting works on the quite old, but stalled, JSR-107, aka JCache. The first step was obviously the released of the JSR 1.0 version, a few month back, and most recently in December with Infinispan 7.0.2.Final is a certified JSR-107 1.0 implementation. It’s actually quite useful news, as it allows you to build webapps or even JEE apps using a standard API to access Infinispan.

Using JCache API is pretty straightforward, fairly well documented, and to summarize consists of:

  • add a dependency to infinispan-jcache artifact

Continue reading “JCache and Infinispan – standardize your application's cache”


Using RHQ (JON) to monitor Java apps

While there is not yet a RHQ plugin for Glassfish, it is already possible to monitor an instance of Glassfish (GF), using the existing JMX Server resource template. Let’s see how this unfolds…

Set up

Foreword: While not difficult, setting this up on a laptop requires running a LOT of Java processes, on top of a database. As the latter needs to be a somewhat older version of PostgreSQL (8.4), you might even end up running it on VM using virt-manager. That is to say, at the end of the day, you do need a little bit of memory and CPU power…

Here what do we need to run exactly:

Continue reading “Using RHQ (JON) to monitor Java apps”


XML editing with Bash script

Photo by seeweb

Countless products uses XML files, whether it is for data persistence, serialization or mere configuration. This is even more true when it comes to the Red Hat middleware portfolio, the JBoss projects having always been keen on using this format for configuration files – on top of the ones specified by JEE such as the famous (or infamous ?) web.xml.  While the XML format has some definitive qualities, it is not the easiest format to parse, and this often causes issues when integrating product inside an RPM or designing an automated installation procedure.

As I’ve been working on such automation for most of my career, I’ve picked up a bunch of nifty tricks and also designed some useful practices that I wanted to share on this blog.

Continue reading “XML editing with Bash script”


VM Truckloader first release … why and how to use it!

I’ve recently released a tool called vm-truck-loader to automate virtual machine creation with VMware vCenter. Using a simple CSV file, and leveraging the API exposed by vCenter, this Java based command line tool enables you to design a fully automated deployment process, and can be a key to implement a proper Standard Operating Environment around vCenter. In this regard, I thought I’d do a quick entry on this blog, to briefly describe what the tool can do.

Instrumenting virtual machine creation

Continue reading “VM Truckloader first release … why and how to use it!”


Separating IDE workspaces from code repositories

As I’ve been using Git, SVN (with git-svn) and Hg for quite a long time now, I’ve adapted my way to handle the local repositories created with those tools. Especially, I quickly found out that it is quite crucial to separate those repositories from your IDE workspaces. Some explanation of why and how are in this entry.

(Photo credit by motjetom)

Continue reading “Separating IDE workspaces from code repositories”