mq_install
Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.4.x
- Puppet >= 4.9.0 < 9.0.0
- , , , , , , , , , ,
Tasks:
- restart
- start
- stop
- status
Plans:
- apply_fixpack
- apply_upgrades
Start using this module
Add this module to your Puppetfile:
mod 'enterprisemodules-mq_install', '2.3.2'
Learn more about managing modules with a PuppetfileDocumentation
Table of Contents
- Overview
- Experience the Power of Puppet for IBM MQ
- License
- Description
- Setup
- Usage
- Reference
- Limitations
Overview
This module allows you to install IBM MQ messaging software. It is part of our family of Puppet modules to install and manage IBM messaging middleware. Besides the mq_install
module, this family also contains:
mq_config
to configure and manage the MQ softwareiib_config
to manage and configure IBM Integration Bus softwareiib_install
to install IBM Integration Bus software
Experience the Power of Puppet for IBM MQ
Installing IBM MQ software and managing your IBM MQ configuration can be hard. With Puppet at your side, you get super-powers when installing and managing IBM MQ. If you want to play and experiment with this please take a look at our playgrounds.
License
This is a commercially licensed module. But you can use the module on VirtualBox based development systems for FREE. You can request a FREE trial license here
Check the License for details.
Description
Our mq_install
module allows you to install your IBM MQ software on your systems. It automatically configures your OS, creates required users and groups, unpacks the files and registers the license.
This module is best used together withe the enterprisemodules::ibm_profile module.
Here is an example of how to use this:
include mq_install::software
Check here to see the full documentation for this module.
Setup
Requirements
The mq_install
module requires:
- Puppet module
enterprisemodules-easy_type
installed. - Puppet version 4.9 or higher. Can be Puppet Enterprise or Puppet Open Source
- IBM MQ 8 or 9 installation.
- A valid License from IBM to use this software.
- A valid entitlement to use this module by Enterprise Modules.
- Runs on most Linux systems, Solaris, AIX and Windows.
Installing the mq_install module
To install these modules, you can use a Puppetfile
mod 'enterprisemodules/mq_install' ,'x.x.x'
Then use the librarian-puppet
or r10K
to install the software.
You can also install the software using the puppet module
command:
puppet module install enterprisemodules-mq_install
Usage
Building a total MQ setup requires quite some work. To help you, we have built some examples:
These repositories contain examples of how you can install and configure a basic MQ setup.
Reference
Here you can find some more information regarding this puppet module:
Here is a list of related blog posts:
Some example code:
Limitations
This module runs most Linux versions, Solaris, AIX, and Windows systems. It requires a puppet version higher than 4. Contact us if you need to run this module on other flavors of UNIX. We can work together with you to make it work.
Reference
Table of Contents
Classes
mq_install::fixpack
: The defined typemq_install::fixoack
allows you to install specified fixpacks on your system.mq_install::internal::mq_stop
: This is an internal API.mq_install::software
: This class install's specified version of the the MQ software on the system.
Defined types
mq_install::autostart
: The defined typemq_install::autostart
allows you to create a systemd startup unit for a specified MQ queue manager andmq_install::internal::mq_packages
: This is an internal API.mq_install::software::unix
: This class install's specified version of the the MQ software for Unix like systems on the system.mq_install::software::windows
: This class install's specified version of the the MQ software for Windows on the system.
Resource types
mq_install
: Setup the MQ installer.
Functions
mq_install::fixpack_downgrade
: Function to determine if we need a fixpack downgrade. We do this based on the current version and the requested versionmq_install::fixpack_upgrade
: Function to determine if we need a fixpack upgrade. We do this based on the current version and the requested versionmq_install::running_managers
: Function to fetch the fact mq_managers and based on that information decide if the specfied queue manager is running in standby mode or not.mq_install::selected_components
: Create array of selected components based on the selection. rubocop:disable allmq_install::validate_selection
: Fetch the OS specifc settings and validate if the selected components can be installed here. rubocop:disable allmq_install::version_upgrade
: Function to determine if we are changing to version with a different major or minor version.
Tasks
restart
: Restart the specified MQ queue manager on the specified nodestart
: Startup the specified MQ queue manager on the specified nodestatus
: Fetch the status of the specified MQ queue manager on the specified nodestop
: Shutdown the specified MQ queue manager on the specified node
Plans
mq_install::apply_fixpack
: Apply the in hiera specified MQ fixpack to the specified nodes.mq_install::apply_upgrades
: Apply the in hiera specified MQ upgrades to the specified nodes.
Classes
mq_install::fixpack
mq_install::fixpack
The fixpacks will be added on top of your software installation managed by mq_install::software
.
The simples way to use it is:
mq_install::fixpack{'9.1.0.1':
source_locaation => '/nfs_share/software'
}
Based on this puppet code, Puppet will install fixpack 9.1.0.1. Because the installation of the fixpack requires all MQ processes to be stopped, this code will stop ALL MQ managers when it finds it needs to install the fixpack.
When the `mq_install::fixpack' is part of a larger set of Puppet code also managing MQ managers and queues, that definition will restart the required MQ queue managers.
Fixpack updates
When you specify a higher fixpack version, Puppet will detect this and start the fixpack upgrade scenario. The upgrade scenario consists of:
1) Shutting down all running queue managers 2) Installing the requested fixpack
WARNING The mq_install::fixpack
class does not automatically restart the queue managers again. In general, this is taken care of by mq_install::autostart
. If mq_install::autostart
is not part of your manifest, you must ensure your own steps to make sure the queue managers are restarted again.
Fixpack rollback
When you specify a fixpack version that is lower than the fixpack that is currently installed, Puppet will detect this and start the rollback procedure. Puppet supports rolling one fixpack at a time. This means that Puppet will only allow you to rollback (e.g., uninstall) the latest installed fixpack.
Puppet will throw an error when:
- You specified a lower version than currenly installed, but also a fixpack version that was not previously installed.
- You specified a lower version than currenly installed, but a version that is older than the previous fixpack version that was installed.
See the file "LICENSE" for the full license governing this code.
Parameters
The following parameters are available in the mq_install::fixpack
class:
version
Data type: String[1]
The title of his resource is used to specify the required version of the fixpack to be installed.
It can for example be 9.1.0.1
.
service_window
Data type: String[1]
The service_window Puppet will use to execute a specified upgrade.
When Puppet detects a mismatch between the current version and the version in your manifest, it will start to execute an upgrade. But in
general, you want some control over when that happens. You don't want Puppet to stop your queue managers during regular production hours to do the upgrade.
The service_window
parameter allows this control. The parameter can have the following values:
- DIRECT
- INSTALL_ONLY
- A time range
DIRECT
DIRECT
is the normal behavior of Puppet (e.g., not the default of the parameter). When a manifest change is detected, Puppet will immediately execute the upgrade and, in this process, stop the MQ queue managers.
INSTALL_ONLY
This is the default value for this class. In this case, Puppet will use the specified manifest values ONLY on an initial install. When Puppet detects MQ is already running, it will leave it like it is and NOT do the upgrade. You can use, for example, a bolt plan or task to execute the upgrade at a moment that suits your requirements.
time range
When you have a specific service window wherein Puppet is allowed to do the MQ shutdown and execute the upgrade procedure, you can specify a time range. An example of a time range would be: '01:00 - 02:00`
Default value: 'INSTALL_ONLY'
source_location
Data type: String[1]
The location of the MQ software. Here is an example on how to use this: class { '::mq_install::...': ... source_location => '/software', ... }
tmp_dir
Data type: String[1]
This defined type uses a temporary directory.
By default this is \tmp
. If you want to use an other directory for this, you must specify this parameter.
Here is an example on how to use this:
class { '::mq_install::...':
...
tmp_dir => '/my_tmp_dir',
...
}
On systems with a secured /tmp
direcory, you MUST specify the tmp_dir
parameter and specify a directory that puppet is allowed to execute scripts from. It must also have enough space to receive the extracted MQ installation kit.
Default value: '/tmp'
logoutput
Data type: Variant[Enum['on_failure'], Boolean]
If you want to see the output of the exec
resources in the type, you can set this value to true
.
The default is on_failure
.
Here is an example on how to use this:
class { '::mq_install::...':
...
logoutput => true,
...
}
Default value: 'on_failure'
mq_install::internal::mq_stop
mq_install::internal::mq_stop
Please do not use this.
See the file "LICENSE" for the full license governing this code.
Parameters
The following parameters are available in the mq_install::internal::mq_stop
class:
logoutput
Data type: Variant[Enum['on_failure'], Boolean]
If you want to see the output of the exec
resources in the type, you can set this value to true
.
The default is on_failure
.
Here is an example on how to use this:
class { '::mq_install::...':
...
logoutput => true,
...
}
Default value: 'on_failure'
mq_install::software
mq_install::software
The source zip file from IBM is found at the location specified at source_location
. By default it will install only the minimal required set. By using the install_...
parameters, you can install optional components.
Here is an example on how to use it:
class { '::mq_install::software':
source_location => '/software',
version => '9.0.0.0'
tmp_dir => '/tmp'
install_ams => true,
install_ft => false,
install_client => false,
install_explorer => true,
install_xrserver => false,
install_samples => false,
install_sdk => false,
install_man => false,
install_gskit => false,
install_amqp => false,
logoutput => 'true,
}
On systems with a secured /tmp
direcory, you MUST specify the tmp_dir
parameter and specify a directory that puppet is allowed to execute scripts from. It must also have enough space to receive the extracted MQ installation kit.
MQ Upgrade
When you specify a version where either the major or the minor version is higher than the currently installed version, Puppet will detect this and start the upgrade scenario. The upgrade scenario consists of:
1) Shutting down all running queue managers 2) Uninstalling current MQ version packages, including any installed fixpacks 3) Installing the requested version
WARNING The mq_install::software
class does not automaticaly restart the queue managers again. In general, this is taken care of by mq_install::autostart
. If mq_install::autostart
is not part of your manifest you must ensure your own steps to make sure the queue managers are restarted again.
MQ Downgrade
When you specify a version where either the major or the minor version is lower then the currently installed version, Puppet will detect this. Unfortunately, MQ does not support this without manually restoring some files. Therefore Puppet will give you an error.
See the file "LICENSE" for the full license governing this code.
Parameters
The following parameters are available in the mq_install::software
class:
source_location
service_window
version
file_name
tmp_dir
install_ams
install_ft
install_client
install_explorer
install_xrserver
install_samples
install_sdk
install_man
install_gskit
install_amqp
install_web
install_salesforce
install_blockchain
install_rdqm
install_toolkit
supported_components
supported_major_versions
logoutput
source_location
Data type: String[1]
The location of the MQ software. Here is an example on how to use this: class { '::mq_install::...': ... source_location => '/software', ... }
service_window
Data type: String[1]
The service_window Puppet will use to execute a specified upgrade.
When Puppet detects a mismatch between the current version and the version in your manifest, it will start to execute an upgrade. But in
general, you want some control over when that happens. You don't want Puppet to stop your queue managers during regular production hours to do the upgrade.
The service_window
parameter allows this control. The parameter can have the following values:
- DIRECT
- INSTALL_ONLY
- A time range
DIRECT
DIRECT
is the normal behavior of Puppet (e.g., not the default of the parameter). When a manifest change is detected, Puppet will immediately execute the upgrade and, in this process, stop the MQ queue managers.
INSTALL_ONLY
This is the default value for this class. In this case, Puppet will use the specified manifest values ONLY on an initial install. When Puppet detects MQ is already running, it will leave it like it is and NOT do the upgrade. You can use, for example, a bolt plan or task to execute the upgrade at a moment that suits your requirements.
time range
When you have a specific service window wherein Puppet is allowed to do the MQ shutdown and execute the upgrade procedure, you can specify a time range. An example of a time range would be: '01:00 - 02:00`
Default value: 'INSTALL_ONLY'
version
Data type: Pattern[/\d+\.\d+\.\d+\.\d/]
The version to be installed. Here is an example on how to use this: class { '::mq_install::software': ... version => '9.0.0.0', ... }
file_name
Data type: Optional[String[1]]
The file containing the install kit for the MQ software.
Default value: undef
tmp_dir
Data type: String[1]
This defined type uses a temporary directory.
By default this is \tmp
. If you want to use an other directory for this, you must specify this parameter.
Here is an example on how to use this:
class { '::mq_install::...':
...
tmp_dir => '/my_tmp_dir',
...
}
On systems with a secured /tmp
direcory, you MUST specify the tmp_dir
parameter and specify a directory that puppet is allowed to execute scripts from. It must also have enough space to receive the extracted MQ installation kit.
Default value: '/tmp'
install_ams
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_ams => true,
...
}
The default is 'false'. Meaning this component is not installed.
Default value: false
install_ft
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_ft => true,
...
}
The default is 'false'. Meaning this component is not installed.
Default value: false
install_client
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_client => true,
...
}
The default is 'false'. Meaning this component is not installed.
Default value: false
install_explorer
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_explorer => true,
...
}
The default is 'false'. Meaning this component is not installed.
Default value: false
install_xrserver
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_xserver => true,
...
}
The default is 'false'. Meaning this component is not installed.
Default value: false
install_samples
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_samples => true,
...
}
The default is 'false'. Meaning this component is not installed.
This component can only be installed on Linux systems.
Default value: false
install_sdk
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_sdk => true,
...
}
The default is 'false'. Meaning this component is not installed.
This component can only be installed on Linux systems.
Default value: false
install_man
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_man => true,
...
}
The default is 'false'. Meaning this component is not installed.
This component can only be installed on Linux systems.
Default value: false
install_gskit
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_gskit => true,
...
}
The default is 'false'. Meaning this component is not installed.
This component can only be installed on Linux systems.
Default value: false
install_amqp
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_amqp => true,
...
}
The default is 'false'. Meaning this component is not installed.
Default value: false
install_web
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_web => true,
...
}
The default is 'false'. Meaning this component is not installed.
Default value: false
install_salesforce
Data type: Boolean
Specify a value of true
when you want to install the Bridge to Salesforce component.
Here is an example:
class { '::mq_install::software':
...
install_salesforce => true,
...
}
The default is 'false'. Meaning this component is not installed.
Install this component to configure the connections to Salesforce and IBM MQ, then run the runmqsfb command to subscribe to events from Salesforce and publish them to an IBM MQ network.
This component can only be installed on Linux systems.
Default value: false
install_blockchain
Data type: Boolean
Specify a value of true
when you want to install the IBM MQ Bridge to blockchain component.
Here is an example:
class { '::mq_install::software':
...
install_blockchain => true,
...
}
The default is 'false'. Meaning this component is not installed.
Install this component to configure the connections to your blockchain network and IBM MQ. You can then run the runmqbcb command to start the bridge and send queries and updates to, and receive responses from your blockchain network. The queue manager that the bridge connects to must be an IBM MQ Advanced queue manager.
This component is available only on Linux for System x (64 bit), on RHEL 7.3 or later and is only supported for MQ 9.1 and higher.
This component can only be installed on Linux systems.
Default value: false
install_rdqm
Data type: Boolean
Specify a value of true
when you want to install the replicated data queue manager component.
Here is an example:
class { '::mq_install::software':
...
install_rqdm => true,
...
}
The default is 'false'. Meaning this component is not installed.
Install this component to make the replicated data queue manager high availability configuration available. See Installing RDQM (replicated data queue managers) for more information.
This component is available only on Linux for System x (64 bit), on RHEL 7.3 or later and is only supported for MQ 9.1 and higher.
This component can only be installed on Linux systems.
Default value: false
install_toolkit
Data type: Boolean
Specify a value of true
when you want to install this component.
Here is an example:
class { '::mq_install::software':
...
install_toolkit => true,
...
}
The default is 'false'. Meaning this component is not installed.
This component can only be installed on Windows systems.
Default value: false
supported_components
Data type: Hash
supported_major_versions
Data type: Array[String[1]]
The major versions of MQ supported by this class.
logoutput
Data type: Variant[Enum['on_failure'], Boolean]
If you want to see the output of the exec
resources in the type, you can set this value to true
.
The default is on_failure
.
Here is an example on how to use this:
class { '::mq_install::...':
...
logoutput => true,
...
}
Default value: 'on_failure'
Defined types
mq_install::autostart
mq_install::autostart
make sure it is restarted after a system reboot.
The simples way to use it is:
mq_install::autostart{'QM1':}
Here is an example with all possible properties used:
mq_install::autostart{'QM1':
path => '/etc/systemd/system',
service_name => 'my_mq,
mq_version => 8,
mq_user => 'mqm_user',
mq_group => 'mqm_group',
nofile_limit => 20480,
nproc_limit => 4096,
}
See the file "LICENSE" for the full license governing this code.
Parameters
The following parameters are available in the mq_install::autostart
defined type:
ensure
standby
title
path
service_name
mq_version
mq_user
mq_group
nofile_limit
nproc_limit
multi_instance
unit_template
ensure
Data type: Enum['present', 'absent']
Whether you want to ensure or remove the autostart.
Default value: 'present'
standby
Data type: Boolean
Use true
if you want to enure the startup in standby mode.
Default value: lookup('mq_install::autostart::standby')
title
The title is used to specfy the name of the queue manaer you want to ensure autostarted. Here is an example on how to use this:
mq_install::autostart{'QM1':
}
path
Data type: String[1]
Allows you to specify the path where the unit-file will be placed. Here is an example on how to use this:
mq_install::autostart{'QM1':
...
path => '/etc/mysystemd/system',
...
}
The default value is `/etc/systemd/system'.
Default value: lookup('mq_install::autostart::path')
service_name
Data type: String[1]
Allows you to specfy the name of the service. Here is an example on how to use this:
mq_install::autostart{'QM1':
...
service_name => 'my_mq,
...
}
The default value is : "mq@$queuemanager_name
.
Default value: lookup('mq_install::autostart::service_name')
mq_version
Data type: Integer
Allows you to specify the MQ versions. At this point in time it is only used for comments in the unit. Here is an example on how to use this:
mq_install::autostart{'QM1':
...
mq_version => 8,
...
}
Default value: lookup('mq_install::autostart::mq_version')
mq_user
Data type: String[1]
Allows you to specify the OS user the queue manage will be started under. Here is an example on how to use this:
mq_install::autostart{'QM1':
...
mq_user => 'mqm_user',
...
}
The default value is mqm
and is correct in most situations.
Default value: lookup('mq_install::autostart::mq_user')
mq_group
Data type: String[1]
Allows you to specify the OS group the queue manage will be started under. Here is an example on how to use this:
mq_install::autostart{'QM1':
...
mq_group => 'mqm_group',
...
}
The default value is mqm
and is correct in most situations.
Default value: lookup('mq_install::autostart::mq_group')
nofile_limit
Data type: Integer
The nofile limit used for the process running the queue manager. Here is an example on how to use this:
mq_install::autostart{'QM1':
...
nofile_limit => 20480,
...
}
Default value: lookup('mq_install::os::nofile')
nproc_limit
Data type: Integer
The nproc limit used for the process running the queue manager. Here is an example on how to use this:
mq_install::autostart{'QM1':
path => '/etc/systemd/system',
service_name => 'my_mq,
mq_version => 8,
mq_user => 'mqm_user',
mq_group => 'mqm_group',
nofile_limit => 20480,
nproc_limit => 4096,
}
Default value: lookup('mq_install::os::nproc')
multi_instance
Data type: Boolean
When true
the queue manager wll be started in multi instance mode.
Here is an example on how to use this:
mq_install::autostart{'QM1':
...
multi_instance => true,
...
}
Default value: lookup('mq_install::autostart::multi_instance')
unit_template
Data type: String[1]
The name of the epp template to use for the systemd unit file.
The default value is: mq_install/mq.service.epp
.
Here is an example on how to use this:
mq_install::autostart{'QM1':
...
unit_template => 'my_module/my_template.epp',
...
}
The template is called with these parameters:
'mq_version' => $mq_version,
'mq_user' => $mq_user,
'mq_group' => $mq_group,
'nofile_limit' => $nofile_limit,
'nproc_limit' => $nproc_limit,
'multi_instance' => $multi_instance,
'standby' => $standby,
Default value: lookup('mq_install::autostart::unit_template')
mq_install::internal::mq_packages
mq_install::internal::mq_packages
Please do not use this.
See the file "LICENSE" for the full license governing this code.
Parameters
The following parameters are available in the mq_install::internal::mq_packages
defined type:
service_window
Data type: String[1]
The time window where the packages can be installed or removed.
packages
Data type: Array[String[1]]
The packages that are selected
source_location
Data type: String[1]
The location of the MQ software. Here is an example on how to use this: class { '::mq_install::...': ... source_location => '/software', ... }
mq_install::software::unix
mq_install::software::unix
This is an internal defined type and should not be used by client code.
See the file "LICENSE" for the full license governing this code.
Parameters
The following parameters are available in the mq_install::software::unix
defined type:
source_location
Data type: String[1]
The location of the MQ software. Here is an example on how to use this: class { '::mq_install::...': ... source_location => '/software', ... }
service_window
Data type: String[1]
The service_window Puppet will use to execute a specified upgrade.
When Puppet detects a mismatch between the current version and the version in your manifest, it will start to execute an upgrade. But in
general, you want some control over when that happens. You don't want Puppet to stop your queue managers during regular production hours to do the upgrade.
The service_window
parameter allows this control. The parameter can have the following values:
- DIRECT
- INSTALL_ONLY
- A time range
DIRECT
DIRECT
is the normal behavior of Puppet (e.g., not the default of the parameter). When a manifest change is detected, Puppet will immediately execute the upgrade and, in this process, stop the MQ queue managers.
INSTALL_ONLY
This is the default value for this class. In this case, Puppet will use the specified manifest values ONLY on an initial install. When Puppet detects MQ is already running, it will leave it like it is and NOT do the upgrade. You can use, for example, a bolt plan or task to execute the upgrade at a moment that suits your requirements.
time range
When you have a specific service window wherein Puppet is allowed to do the MQ shutdown and execute the upgrade procedure, you can specify a time range. An example of a time range would be: '01:00 - 02:00`
version
Data type: Pattern[/\d+\.\d+\.\d+\.\d/]
The version to be installed. Here is an example on how to use this: class { '::mq_install::software': ... version => '9.0.0.0', ... }
tmp_dir
Data type: String[1]
This defined type uses a temporary directory.
By default this is \tmp
. If you want to use an other directory for this, you must specify this parameter.
Here is an example on how to use this:
class { '::mq_install::...':
...
tmp_dir => '/my_tmp_dir',
...
}
On systems with a secured /tmp
direcory, you MUST specify the tmp_dir
parameter and specify a directory that puppet is allowed to execute scripts from. It must also have enough space to receive the extracted MQ installation kit.
Default value: '/tmp'
file_name
Data type: String[1]
The file containing the install kit for the MQ software.
selected_components
Data type: Array[String[1]]
The components that the user has selected to be installed or updated.
logoutput
Data type: Variant[Enum['on_failure'], Boolean]
If you want to see the output of the exec
resources in the type, you can set this value to true
.
The default is on_failure
.
Here is an example on how to use this:
class { '::mq_install::...':
...
logoutput => true,
...
}
Default value: 'on_failure'
mq_install::software::windows
mq_install::software::windows
This is an internal defined type and should not be used by client code.
See the file "LICENSE" for the full license governing this code.
Parameters
The following parameters are available in the mq_install::software::windows
defined type:
source_location
Data type: String
The location of the MQ software. Here is an example on how to use this: class { '::mq_install::...': ... source_location => '/software', ... }
version
Data type: Pattern[/\d+\.\d+\.\d+\.\d/]
The version to be installed. Here is an example on how to use this: class { '::mq_install::software': ... version => '9.0.0.0', ... }
tmp_dir
Data type: String
This defined type uses a temporary directory.
By default this is \tmp
. If you want to use an other directory for this, you must specify this parameter.
Here is an example on how to use this:
class { '::mq_install::...':
...
tmp_dir => '/my_tmp_dir',
...
}
On systems with a secured /tmp
direcory, you MUST specify the tmp_dir
parameter and specify a directory that puppet is allowed to execute scripts from. It must also have enough space to receive the extracted MQ installation kit.
Default value: 'C:\\tmp'
selected_components
Data type: Array[String[1]]
The components that the user has selected to be installed or updated.
service_window
Data type: String[1]
The service_window Puppet will use to execute a specified upgrade.
When Puppet detects a mismatch between the current version and the version in your manifest, it will start to execute an upgrade. But in
general, you want some control over when that happens. You don't want Puppet to stop your queue managers during regular production hours to do the upgrade.
The service_window
parameter allows this control. The parameter can have the following values:
- DIRECT
- INSTALL_ONLY
- A time range
DIRECT
DIRECT
is the normal behavior of Puppet (e.g., not the default of the parameter). When a manifest change is detected, Puppet will immediately execute the upgrade and, in this process, stop the MQ queue managers.
INSTALL_ONLY
This is the default value for this class. In this case, Puppet will use the specified manifest values ONLY on an initial install. When Puppet detects MQ is already running, it will leave it like it is and NOT do the upgrade. You can use, for example, a bolt plan or task to execute the upgrade at a moment that suits your requirements.
time range
When you have a specific service window wherein Puppet is allowed to do the MQ shutdown and execute the upgrade procedure, you can specify a time range. An example of a time range would be: '01:00 - 02:00`
file_name
Data type: String
The file containing the install kit for the MQ software.
Default value: 'IBM_MQ_9.1_WINDOWS_TRIAL.zip'
logoutput
Data type: Variant[Enum['on_failure'], Boolean]
If you want to see the output of the exec
resources in the type, you can set this value to true
.
The default is on_failure
.
Here is an example on how to use this:
class { '::mq_install::...':
...
logoutput => true,
...
}
Default value: 'on_failure'
Resource types
mq_install
Setup the MQ installer.
Properties
The following properties are available in the mq_install
type.
ensure
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
Parameters
The following parameters are available in the mq_install
type.
provider
The specific backend to use for this mq_install
resource. You will seldom need to specify this --- Puppet will usually
discover the appropriate provider for your platform.
Functions
mq_install::fixpack_downgrade
Type: Ruby 4.x API
Function to determine if we need a fixpack downgrade. We do this based on the current version and the requested version
mq_install::fixpack_downgrade(String $current_version, String $requested_version)
Function to determine if we need a fixpack downgrade. We do this based on the current version and the requested version
Returns: Boolean
If current_version is higher than the requested version return true. Else false
current_version
Data type: String
The currently installed fixpack version.
requested_version
Data type: String
The requested fixpack version.
mq_install::fixpack_upgrade
Type: Ruby 4.x API
Function to determine if we need a fixpack upgrade. We do this based on the current version and the requested version
mq_install::fixpack_upgrade(String $current_version, String $requested_version)
Function to determine if we need a fixpack upgrade. We do this based on the current version and the requested version
Returns: Boolean
If current_version is lower than the requested version return true. Else false
current_version
Data type: String
The currently installed fixpack version.
requested_version
Data type: String
The requested fixpack version.
mq_install::running_managers
Type: Ruby 4.x API
Function to fetch the fact mq_managers and based on that information decide if the specfied queue manager is running in standby mode or not.
mq_install::running_managers()
Function to fetch the fact mq_managers and based on that information decide if the specfied queue manager is running in standby mode or not.
Returns: Array
The MQ manageres that are currently running on the system
mq_install::selected_components
Type: Ruby 4.x API
Create array of selected components based on the selection.
rubocop:disable all
mq_install::selected_components(String $version, Hash $supported_components, Boolean $install_ams, Boolean $install_ft, Boolean $install_client, Boolean $install_explorer, Boolean $install_xrserver, Boolean $install_samples, Boolean $install_sdk, Boolean $install_man, Boolean $install_gskit, Boolean $install_amqp, Boolean $install_web, Boolean $install_salesforce, Boolean $install_blockchain, Boolean $install_rdqm, Boolean $install_toolkit)
Create array of selected components based on the selection.
rubocop:disable all
Returns: Any
List of selected compinents based on selection
version
Data type: String
The version of MQ installed
supported_components
Data type: Hash
COmponents supported on this type of system
install_ams
Data type: Boolean
Install component ams
install_ft
Data type: Boolean
Install component ft
install_client
Data type: Boolean
Install component client
install_explorer
Data type: Boolean
Install component explorer
install_xrserver
Data type: Boolean
Install component xrserver
install_samples
Data type: Boolean
Install component samples
install_sdk
Data type: Boolean
Install component sdk
install_man
Data type: Boolean
Install component man
install_gskit
Data type: Boolean
Install component gskit
install_amqp
Data type: Boolean
Install component amqp
install_web
Data type: Boolean
Install component web
install_salesforce
Data type: Boolean
Install component salesforce
install_blockchain
Data type: Boolean
Install component blockchain
install_rdqm
Data type: Boolean
Install component rdqm
install_toolkit
Data type: Boolean
Install component toolkit
mq_install::validate_selection
Type: Ruby 4.x API
Fetch the OS specifc settings and validate if the selected components can be installed here.
rubocop:disable all
mq_install::validate_selection(Hash $supported_components, Boolean $install_ams, Boolean $install_ft, Boolean $install_client, Boolean $install_explorer, Boolean $install_xrserver, Boolean $install_samples, Boolean $install_sdk, Boolean $install_man, Boolean $install_gskit, Boolean $install_amqp, Boolean $install_web, Boolean $install_salesforce, Boolean $install_blockchain, Boolean $install_rdqm, Boolean $install_toolkit)
Fetch the OS specifc settings and validate if the selected components can be installed here.
rubocop:disable all
Returns: Any
Nothing
supported_components
Data type: Hash
COmponents supported on this type of system
install_ams
Data type: Boolean
Install component ams
install_ft
Data type: Boolean
Install component ft
install_client
Data type: Boolean
Install component client
install_explorer
Data type: Boolean
Install component explorer
install_xrserver
Data type: Boolean
Install component xrserver
install_samples
Data type: Boolean
Install component samples
install_sdk
Data type: Boolean
Install component sdk
install_man
Data type: Boolean
Install component man
install_gskit
Data type: Boolean
Install component gskit
install_amqp
Data type: Boolean
Install component amqp
install_web
Data type: Boolean
Install component web
install_salesforce
Data type: Boolean
Install component salesforce
install_blockchain
Data type: Boolean
Install component blockchain
install_rdqm
Data type: Boolean
Install component rdqm
install_toolkit
Data type: Boolean
Install component toolkit
mq_install::version_upgrade
Type: Ruby 4.x API
Function to determine if we are changing to version with a different major or minor version.
mq_install::version_upgrade(String $current_version, String $requested_version)
Function to determine if we are changing to version with a different major or minor version.
Returns: Boolean
If current_version is higher major version than the requested version return true. Else false
current_version
Data type: String
The currently installed MQ version.
requested_version
Data type: String
The requested MQ version.
Tasks
restart
Restart the specified MQ queue manager on the specified node
Supports noop? false
Parameters
queue_manager
Data type: Optional[String[1]]
name of the queue manager
start
Startup the specified MQ queue manager on the specified node
Supports noop? false
Parameters
queue_manager
Data type: Optional[String[1]]
name of the queue manager
status
Fetch the status of the specified MQ queue manager on the specified node
Supports noop? false
Parameters
queue_manager
Data type: Optional[String[1]]
name of the queue manager
stop
Shutdown the specified MQ queue manager on the specified node
Supports noop? false
Parameters
queue_manager
Data type: Optional[String[1]]
name of the queue manager
Plans
mq_install::apply_fixpack
This bolt plan applies the pending MQ software updates specified in the hieradata, to the nodes that are targeted.
How does it work
It applies the puppet class mq_install::fixpack
to the named targets.Because the service window is set to
DIRECT, applying the upgrade will start immediately.
If the any MQ managers are running, they will be stopped before applying the MQ fixpack. After the fickpack is done The plan will restart any queue managers that were started before the start of the plan.
Take care
This puppet plan expects a prerequisite that all of the values for the mq_install::fixpack
class are resolvable
through hiera. If this is not the case, the puppet plan will fail, citing that it cannot find one of the parameters.
The best way is to use the same hiera config for this puppet task as the hiera config you use for regular puppet runs. Take care, however that hiera in bolt/puppet plans cannot access trusted facts in the hiera config.
See the file "LICENSE" for the full license governing this code.
Examples
bolt --hiera_config /etc/puppetlabs/code/environments/production/hiera.yaml --modulepath /etc/puppetlabs/code/environments/production/modules/ plan run mq_install::apply_fixpack --targets server1,server2
Parameters
The following parameters are available in the mq_install::apply_fixpack
plan:
targets
Data type: TargetSpec
The MQ node(s) you want to apply a software update to
mq_install::apply_upgrades
This bolt plan applies the pending MQ software updates specified in the hieradata, to the nodes that are targeted.
How does it work
It applies the puppet class mq_install::software
to the named targets.Because the service window is set to
DIRECT, applying the upgrade will start immediately.
If the any MQ managers are running, they will be stopped before applying the MQ upgrade. After the upgrade is done The plan will restart any queue managers that were started before the start of the plan.
Take care
This puppet plan expects a prerequisite that all of the values for the mq_install::software
class are resolvable
through hiera. If this is not the case, the puppet plan will fail, citing that it cannot find one of the parameters.
The best way is to use the same hiera config for this puppet task as the hiera config you use for regular puppet runs. Take care, however that hiera in bolt/puppet plans cannot access trusted facts in the hiera config.
See the file "LICENSE" for the full license governing this code.
Examples
bolt --hiera_config /etc/puppetlabs/code/environments/production/hiera.yaml --modulepath /etc/puppetlabs/code/environments/production/modules/ plan run mq_install::apply_upgrades --targets server1,server2
Parameters
The following parameters are available in the mq_install::apply_upgrades
plan:
targets
Data type: TargetSpec
The MQ node(s) you want to apply a software update to
What are tasks?
Modules can contain tasks that take action outside of a desired state managed by Puppet. It’s perfect for troubleshooting or deploying one-off changes, distributing scripts to run across your infrastructure, or automating changes that need to happen in a particular order as part of an application deployment.
Tasks in this module release
What are plans?
Modules can contain plans that take action outside of a desired state managed by Puppet. It’s perfect for troubleshooting or deploying one-off changes, distributing scripts to run across your infrastructure, or automating changes that need to happen in a particular order as part of an application deployment.
Version updates
2.3.2
- [release] Update dependencies
- [unix] Fix usage of schedule when using WHEN_NOT_RUNNING option
2.3.1
- [core] Fix lookup errors
2.3.0
- [core] Update to Puppet 8 and ruby 3.2
2.2.1
- [fixpack] Allow update with patchlevel difference
- [mq_packages] Add MQSeriesGSKit as part of base because of dependencies
2.2.0
- [core] Add support for EL9
- [release] Change dependencies
2.1.1
- [fact/mq_installed_fixpacks] Fix ordering of installed fixpacks
- [fixpack] Also detect queue managers running in standby mode
2.1.0
- [fixpack] Support WHEN_NOT_RUNNING option
- [software] No more stopping message when not stoping MQ managers
- [fixpack] Fix issue when version is multpile digits
- [doc] Fix references to ora_install
2.0.0
- [release] Add support for AlmaLinux and Rocky
- [installmq] Remove class because it was deprecated
- [autostart] Start using puppet-systemd as replacement for camptocamp-systemd
1.11.3
- [fixpack] Fix default file name on Solaris other than i86pc
- [docs] Sanetize documentation
1.11.2
- [docs] Updated docs for REFERENCE.md
- [quality] Remove bundle checks
- [release] Fix echo requirement metadata
1.11.1
- [fixpack] Fix duplicate resource error
1.11.0
- [quality] Multiple small fixes and extra documentation
- [plans/apply_upgrades] Initial implementation
- [plans/apply_fixpack] Initial implementation
- [fixpack] change from defined type to class
- [mq_installed_fixpacks] sort the available fixpacks
- [fixpack] Add support for scheduled fixpacks
- [software] Add support for scheduled upgrade
1.10.0
- [software] Support version upgrade on Linux and Solaris
- [tasks/*] Make tasks run on both Solaris and Linux
- [autostart] Improve working of script on Solaris
1.9.0
- [fixpack] Add support for Solaris and ficpack rollbacks
- [autostart] Extend functionality to Solaris and AIX
1.8.5
- [software] Fix extra package selections
1.8.4
- [core] Add support for MQ 9.2 dependencies
1.8.3
- [doc] Add filled REFERENCE.md
1.8.2
- [doc] Addd REFERENCE.md
1.8.1
- [os] Deprecate class
- [installmq] Deprecate class
1.8.0
- [release] Support puppet 7
- [core] Using Sentive data type for password values
1.7.0
- [autostart] Add support for your own template for the systemd unit
1.6.3
- [autostart] Fix autostart systemd for multiple queue managers
1.6.2
- [autostart] Fix for RHEL 8
1.6.1
- [fixpack] Fix when running on systemd systems
1.6.0
- [core] Add Solaris support
1.5.0
- [core] Add AIX support
- [core] Rename facts to be more os generic
1.4.0
- [core] Add support for Windows
1.3.0
- [fixpack] Add documentation and share some properties between software and fixpack
- [fixpack] Take care of circular dependecy
- [software] Fix the unittests
- [fixpack] Initial implementation
- [software] Refacter to allow addition and removal of rpms after basic install
- [quality] Make acceptance test run on Puppet 6
1.2.0
- [software] Add support for MQ 9.1 components
- [core] Add Puppet 6 unit tests
- [autostart] Fix acceptance test
1.1.1
- [autostart] Add support for standby queue managers
- [acceptance] Fix tests. Not using stdlib 5.0 yet
- [autostart] Make it more rubust
- [core] Update versions of dependency modules
1.1.0
- [autostart] Add support for multi instance queue managers
- [docs] renerate docs with typ info and defaults
- [docs] Add type and defaults
- [core] Fix metadata.json
- [mq_version] Fix faster message
1.0.14
- [mq_version] Handle nil error when invalid version number is received.
1.0.13
- [tasks] Add restart task
- [tasks] Add status task
- [tasks] Add start task
- [tasks] Add stop task
- [release] Better description in the metadata
- [release] Fix link to license in readme
1.0.12
- [release] Added license notice
1.0.11
- [release] Add license text and readme
- [release] Always include puppetlabs_spec_helper gem
- [software] Define tmp_dir in puppet
1.0.10
- [core] Remove support for puppet versions before 4.9
- [autostart] Initial implementation for RedHat 6 and 7
- [os] Make settings easier manageble. And include them in specs
- [quality] Add acceptance tests
- [os] Make all os settings hiera modifyable
1.0.9
- [os] Leave other limits in place
1.0.8
- [os] contain the limits to make sure it is done before the rest
1.0.7
- [os] Add support for NOT managing the home of mqm user
1.0.6
- [os] Add required sysctl parameter
1.0.5
- [software] Fix ordering issue
- [functions] Remove return_type for function.
- [software] Fix selection of optional components
- [software] Cleanup extracted temporary packages
1.0.4
- [os] remove user mquser
1.0.3
- [core] Removed binding and added type
1.0.2
- [core] Fixed bindings
1.0.1
- [core] Added bindings
1.0.0
- [docs] Added documentation
0.0.3
- [os] Make nofile limits bigger
0.0.2
- [software] Make options selectable
- [os] Remove sysctl settings
- [os] Add mqm user
0.0.1
- [installmq] Initial version
Dependencies
- enterprisemodules/easy_type (>= 2.3.14 < 3.0.0)
- puppet-archive (>= 2.0.0 < 8.0.0)
- ipcrm-echo (>= 0.1.7 < 1.0.0)
- enterprisemodules-mq_config (>= 1.0.0 < 2.0.0)
- saz-limits (>= 3.0.0 < 4.0.0)
- puppet-augeasproviders_sysctl (>= 2.2.0 < 4.0.0)
- puppet-augeasproviders_core (>= 3.0.0 < 5.0.0)
- puppet-systemd (>= 3.0.0 < 7.0.0)
Enterprise Modules License d.d. January 2018 This license (“License”) governs the terms and conditions under which mq_install module (“the Software”) is licensed by Enterprise Modules B.V, a limited liability company in the Netherlands, registered in the Dutch Chamber of Commerce: 63689537 (“Licensor”), to the user of the Software (“Licensee”). Article 1. Grant of license 1.1 Licensor hereby grants to Licensee the right to use the Software for its internal business purposes. 1.2 The license granted in the previous paragraph is limited to the use on VirtualBox Virtual machines. For further use a commercial license must be directly obtained from Licensor. Article 2. License limitations 2.1 All right, title and interest to the Software, the accompanying documentation and all modifications and extensions thereto rest and remain with Licensor. Licensee only has the rights and permissions explicitly granted by this License or granted in writing otherwise. Licensee shall not use, copy, modify, distribute or publish the Software in any other manner. Nothing in this License is intended to, and shall not be construed to, transfer to Licensee any rights in intellectual property developed by Licensor. 2.2 In particular, Licensee shall not: a) provide copies of the Software to third parties, including to entities controlling, controlled by or under common control with Licensee; b) sublicense the Software or otherwise make available the Software to such third parties, including by rental, Software-as-a-Service models or otherwise; c) remove indications of Licensor as copyright holder of the Software or to remove or render illegible any part thereof. 2.3 The Software comprises third-party open source software. The respective third-party rights holders grant Licensee the rights indicated in the applicable open source licenses. These licenses can be found in the documentation. The License does not apply to this open source software, and nothing in this License shall be construed as a limitation of any right granted under an open source license. Article 3. Trademark 3.1 This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Software. Article 4. Limitation of Liability 4.1 Licensor provides the Software on an "AS IS" basis, and expressly disclaims all conditions, representations or warranties, express or implied, including without limitation any implied warranties of merchantability, fitness for a particular purpose, and non-infringement of third party rights regarding the Software. Licensor is solely responsible for determining the appropriateness of using the Software and assume any risks associated arising out of or in connection with the Software and this License. 4.2 Licensor shall not be liable for any damages, including consequential, special, punitive and/or incidental damages or fines imposed by regulatory bodies, arising out of or in connection with the Software and this License. 4.3 Licensee shall release, defend, indemnify and hold harmless Licensor from and against any and all claims, damages and liability arising in connection with the Software, including from claims, damages or liability from customers of Licensee. Article 5. Miscellaneous 5.1 Licensor reserves the right to change any or all parts of this License without prior notice. 5.2 The law of the Netherlands governs this License and the terms and conditions therein. 5.3 Any disputes arising between Licensor and Licensee in connection with the License will be settled by the competent courts in the Netherlands for the principal place of business of the Licensor.