Skip to content

Configuration Automation

Siamak Sadeghianfar edited this page Jun 11, 2013 · 6 revisions

Three categories of configuration is required for applications running on JBoss EAP.

  • Generic JBoss EAP Configs: configs that are applied to JBoss EAP and affect the behavior of the app server. These configs are required regardless of the applications deployed such as management interface security configs.
  • Application-specific JBoss EAP Configs: configs that specific applications expect to be available on JBoss EAP such as datasource configs.
  • Application Configs: configs that changes the internal behaviour of applications deployed on JBoss EAP such as a back-end service endpoint address

The configs in each category are divided into two types:

  • Common: configs that are environment independent such as logging layout
  • Environment-specific: configs that change between environments such as binding address for JBoss EAP or datasource JDBC URL

Generic EAP Configs

These types of configs are handled by a Puppet module created specifically for installing JBoss EAP RPMs. The Puppet module also contains the configs required for the standard JBoss EAP installation which needs to be defined per organization. Various approaches such as CLI or XML editing/copying can be used for this purpose with their own pros and cons which needs to be determined for each particular usecase.

Taking advantage of Puppet parameterized classes, the values for environment-specific config can be determined at provisioning time through for example Foreman. Examples of such

Application-specific JBoss EAP Configs

In order to be consitent, Puppet can be used to managed application-specific configs as well. In order to avoid the overhead of DEV creating Puppet modules for their deployments, a config descriptor can be used to describe the config requirements of an application.The config descriptor will be consumed by the deployment tools (Maven and Jenkins plugins) to generate a Puppet module that applies the required config on JBoss EAP.

Taking advantage of Puppet parameterized classes and Foreman smart variables, the actual values for the environment-specific configs can be fed to the deployment process using Foreman's Environment/HostGroup/Host hierarchy for config inheritance as well as manually by the admin/deployer performing the deployment through Foreman.

Application Configs

Internal config of application are generally outside the scope of SOE. However using system properties in conjunction with the approach described above, it is possible to manage environment-specific configs that applications require internally. The config descriptor mentioned above can be used by DEV to specify a list of required system properties and expect those properties to be available with appropriate values in each environment.

Clone this wiki locally