Skip to content
Chef Cookbook to deploy the WildFly Java Application Server
Branch: master
Clone or download
Latest commit b8df2d7 Dec 20, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.delivery
attributes Bump MySQL connector to 8.0.13 Oct 25, 2018
dev
libraries
recipes
resources Fix the tarball path Oct 28, 2018
spec
templates/default Initial init.d support Jan 14, 2018
test
.gitignore
.gitlab-ci.yml Revert Ubuntu 14 and lower concurrency on Gitlab Nov 19, 2018
.kitchen.dokken.yml
.kitchen.yml
.rubocop.yml
.travis.yml Try caching the Chef cache Aug 25, 2018
Berksfile
CHANGELOG.md Release 2.1.0 Oct 28, 2018
CONTRIBUTING.md
LICENSE
README.md
TESTING.md
Vagrantfile
chefignore Release 1.1.0 May 30, 2018
metadata.rb Prep for release 2.1.0 Oct 25, 2018

README.md

Wildfly Cookbook

Cookbook to deploy the WildFly Java Application Server

Cookbook Build Status Gitter chat

Provides resources for installing/configuring WildFly and managing WildFly service instances for use in wrapper cookbooks. Installs WildFly from tarball and installs the appropriate configuration for your platform's init system.

Requirements

Platforms

  • RHEL and derivatives
  • Ubuntu

Chef

  • Chef 12.19+

Usage

This cookbook has recently been rewritten to be resource-driven. It was a large undertaking and breaks old behavior, hence the major version bump. The API-driven configuration and deployment resources are much faster to converge.

The old recipes were kept around for similar, legacy behavior, but using the resources directly in your wrapper cookbook will yield more flexibility.

Example wrapper cookbook scenarios are available in the test cookbook, under test/fixtures/cookbooks/test

Attributes

  • node['wildfly']['version'] - Specify the version of Wildfly
  • node['wildfly']['url'] - URL to WildFly tarball
  • node['wildfly']['checksum'] - SHA256 hash of said tarball

Recipes

  • ::default - Installs WildFly and any enabled connectors.
  • ::install - Installs WildFly using the wildfly resource
  • ::mysql_connector - Installs MySQL Connector/J
  • ::postgres_connector - Installs PostgreSQL Java connector

Resource Providers

WildFly

  • Installs and configures WildFly.
wildfly_wildfly 'wildfly' do
  mode 'standalone' # => WildFly Mode
  config 'standalone-full.xml' # => The WildFly Configuration File
  base_dir '/opt/wildfly' # => Directory to install WildFly to
  service_user 'wildfly'
  service_group 'wildfly'
  provision_user true # => Whether to create the WildFly service user/group
  create_mgmt_user true # => Provision a random, secure user for API interactions
  url 'http://.../wildfly.tar.gz' # URL to WildFly tarball to download
  checksum 'SHA256_CHECKSUM' # WildFly Tarball Checksum
  version '1.2.3' # Version of WildFly (Should correspond to URL)
end
Accessor Properties
  • bind_management_http - the HTTP port for the Management Interface & API

Resource

  • Flexible resource which allows provisioning of attributes and their parameters via the WildFly Management API. This should be used over other resources as it affords more flexibility.
wildfly_resource 'Syslog Handler' do
  path ['subsystem', 'logging', 'syslog-handler', 'SYSLOG']
  parameters 'app-name' => 'TEST',
             'enabled'  => true,
             'hostname' => 'localhost',
             'level'    => 'ALL',
             'port'     => 514,
             'server-address' => 'test.syslog.local',
             'syslog-format'  => 'RFC5424'
  action :create
end

Deploy API

  • Resource to deploy applications via the API
# => URL-Based Deployment
wildfly_deploy_api 'Sample' do
  deploy_name 'sample-v1'
  runtime_name 'sample.war'
  parameters 'url' => 'https://github.com/apcera/sample-apps/raw/master/example-java-war/sample.war'
end
# => File-Based Deployment
myapp = remote_file 'helloworld' do
  source 'https://github.com/efsavage/hello-world-war/raw/master/dist/hello-world.war'
  path ::File.join(Chef::Config[:file_cache_path], 'hello-world.war')
  mode '0644'
  action :create
end

wildfly_deploy_api 'HelloWorld File Deployment' do
  deploy_name "HelloWorld-file-V1"
  runtime_name 'helloworld-file.war'
  parameters 'url' => 'file://' + myapp.path
end

Legacy Resources

  • These will be deprecated in the future. The wildfly_resource resource can do everything these can, and via the much faster Management API. The deploy_api resource will replace the deploy resource as well.

Datasource

wildfly_datasource 'example' do
  jndiname 'java:jboss/datasource/example'
  drivername 'some-jdbc-driver'
  connectionurl 'jdbc:some://127.0.0.1/example'
  username 'db_username'
  password 'db_password'
  sensitive false
end

Deploy

Allows you to deploy JARs and WARs via chef

From a URL

wildfly_deploy 'jboss.jdbc-driver.sqljdbc4_jar' do
      url 'http://artifacts.company.com/artifacts/mssql-java-driver/sqljdbc4.jar'
end

From File

wildfly_deploy 'jboss.jdbc-driver.sqljdbc4_jar' do
      path '/opt/resources/sqljdb4.jar'
end

With Automated Update

Requires a common runtime_name and version-specific name

wildfly_deploy 'my-app-1.0.war' do
      url 'http://artifacts.company.com/artifacts/my-app.1.0.war'
      runtime_name 'my-app.war'
end

Undeploy

Use :disable to keep the contents, and :enable to re-deploy previously kept contents

wildfly_deploy 'jboss.jdbc-driver.sqljdbc4_jar' do
      action :remove
end

Attribute LWRP

Allows you to set an attribute in the server config

Example

<server name="default-server">
  <http-listener name="default" socket-binding="http" max-post-size="20971520"/>
  <host name="default-host" alias="localhost">

Adjust max-post-size

wildfly_attribute 'max-post-size' do
   path '/subsystem=undertow/server=default-server/http-listener=default'
   parameter 'max-post-size'
   value '20971520L'
   notifies :restart, 'service[wildfly]', :delayed
end

Add Attribute

wildfly_attribute 'max-post-size' do
   path '/subsystem=mail/mail-session="postbox"'
   parameter 'jndi-name="java:/mail/postbox",debug=true'
   action :add
end

Property LWRP

Allows you to set or delete system properties in the server config. (Supported Actions: :set, :delete)

wildfly_property 'Database URL' do
   property 'JdbcUrl'
   value 'jdbc:mysql://1.2.3.4:3306/testdb'
   action :set
   notifies :restart, 'service[wildfly]', :delayed
end

Authors

Author:: Brian Dwyer - Intelligent Digital Services

Contributors

Contributor:: Hugo Trippaers

Contributor:: Ian Southam
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.