cookbook 'mule', '= 0.3.0'
mule (9) Versions 0.3.0 Follow5
Installs/Configures Mule ESB
cookbook 'mule', '= 0.3.0', :supermarket
knife supermarket install mule
knife supermarket download mule
mule
Installs Mule Community or Enterprise Edition runtimes on a server.
Supported Platforms
- Ubuntu 14.04 LTS
Usage
Mule should be run under a separate user with restricted permissions.
group `mule` do end user `mule` do supports manage_home: true shell '/bin/bash' home '/home/mule' comment 'Mule user' group 'mule' end
Mule requires a Java Development Kit to run, and it is highly recommended you use Oracle JDK 8 to run Mule ESB.
include_recipe 'java'
Take note of the required node attributes required to download and install Oracle JDK
It is very easy to get started with the Mule LWRP:
mule_instance "mule-esb" do version '3.8.0' user 'mule' group 'mule' end
The full syntax for all of the attributes in the Mule provider is:
mule_instance "name" do enterprise_edition TrueClass, FalseClass env String group String home String init_heap_size String license String max_heap_size String name String # defaults to 'name' if not specified source String user String version String wrapper_additional Array wrapper_defaults TrueClass, FalseClass action Symbol # defaults to :create if not specified end
Actions
This resource has the following actions:
:create
Default. Creates a Mule Runtime and installs it as a service.
Attributes
enterprise_edition
Ruby Types: TrueClass, FalseClass
Flag determining if this is an Enterprise runtime. Defaults to false
.
env
Ruby Types: String
The MULE_ENV variable, as used by the Mule Runtime. Defaults to 'test'
.
group
Ruby Types: String
The group that owns the mule runtime. Defaults to 'mule'
.
home
Ruby Types: String
Path to the MULE_HOME directory. Defaults to '/usr/local/mule-esb'
.
init_heap_size
Ruby Types: String
The wrapper.java.initmemory
parameters in the Tanuki Java Service Wrapper. Defaults to '1024'
(m). If set to '0'
, the Wrapper will expect you to set the -Xms
argument in wrapper_additional
. Otherwise, the JVM will use its own built in defaults.
license
Ruby Types: String
The name of the mule license file. Will not install a license if enterprise_edition
is set to false
. Defaults to empty string, which skips the license install.
max_heap_size
Ruby Types: String
The wrapper.java.maxmemory
parameters in the Tanuki Java Service Wrapper. Defaults to '1024'
(m). If set to '0'
, the Wrapper will expect you to set the -Xmx
argument in wrapper_additional
. Otherwise, the JVM will use its own built in defaults.
name
Ruby Types: String
The name of the Mule ESB service to be installed. Defaults to the name of the resource block if not set.
source
Ruby Types: String
The path to the folder containing the mule archive and license. Defaults to '/tmp/mule'
.
user
Ruby Types: String
The user that owns the mule runtime. Defaults to 'mule'
.
version
Ruby Types: String
The version of Mule ESB to be installed. This is a required attribute.
wrapper_additional
Ruby Types: Array
An array of strings containing the arguments sent to the JVM through the wrapper.java.additional.n
settings in the Tanuki Java Service Wrapper. Recommended arguments to the JVM will have sane defaults for mule if not included:
-Dorg.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size=1048576
-Dorg.glassfish.grizzly.nio.transport.TCPNIOTransport.max-send-buffer-size=1048576
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:NewSize=512m
-XX:MaxNewSize=512m
-XX:MaxTenuringThreshold=8
Arguments for the JVM that are set by default and do not need to be included:
-Dmule.home="%MULE_HOME%"
-Dmule.base="%MULE_HOME%"
-Djava.net.preferIPv4Stack=TRUE
-Dmvel2.disable.jit=TRUE
-XX:+HeapDumpOnOutOfMemoryError
-XX:+AlwaysPreTouch
-XX:+UseParNewGC
More info on the Tanuki Java Service Wrapper is available at: http://wrapper.tanukisoftware.com/doc/english/introduction.html
wrapper_defaults
Ruby Types: TrueClass, FalseClass
Set this attributes to false if you don't want defaults and will set everything yourself, but -Dmule.home="%MULE_HOME%"
and -Dmule.base="%MULE_HOME%"
will always be set by the cookbook. Defaults to true
.
More info on the Tanuki Java Service Wrapper is available at: http://wrapper.tanukisoftware.com/doc/english/introduction.html
License and Authors
Authors: Reed McCartney (reed@hoegg.software) and Ryan Hoegg (ryan@hoegg.software)
Copyright 2016 Hoegg Software Company
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
0.3.0
- Changed Mule installation to a Chef Lightweight Resource Provider rather than a recipe.
- Created a test cookbook and kitchen file for CI.
0.2.1
- Remove variables setting uid and gid.
0.2.0
- Added the ability to open both .tar.gz and .zip files depending on what is available.
- Added the ability to set arguments to the JVM with a cookbook attribute through the wrapper.conf.
0.1.1
- Rename cookbook, and make naming conventions consistent across cookbook.
- Fix some Foodcritic complaints.
0.1.0
- Initial release of mule cookbook.
- Supports installing Java, multiple Mule ESB runtimes with Upstart scripts, and enterprise licenses.
Foodcritic Metric
0.3.0 failed this metric
FC002: Avoid string interpolation where not required: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:27
FC009: Resource attribute not recognised: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:166
FC017: LWRP does not notify when updated: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:1
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:49
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:54
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:60
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:158
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:166
0.3.0 failed this metric
FC009: Resource attribute not recognised: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:166
FC017: LWRP does not notify when updated: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:1
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:49
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:54
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:60
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:158
FC021: Resource condition in provider may not behave as expected: /tmp/cook/eb91c5e9bcc275ff8064eac6/mule/providers/instance.rb:166