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.5.x, 2016.4.x
- Puppet >=4.0.0 < 9.0.0
- , , , , , , , , ,
Tasks:
- restart
- start
- status
- stop
Start using this module
Add this module to your Puppetfile:
mod 'enterprisemodules-iib_install', '1.5.0'
Learn more about managing modules with a PuppetfileDocumentation
Table of Contents
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
Overview
This module allows you to install IBM Integration Bus (IIB) software. It is part of our family of Puppet modules to install and manage IBM messaging middleware. Besides the iib_install
module, this family also contains:
mq_install
to install the MQ software.mq_config
to configure and manage the MQ softwareiib_config
to manage and configure IBM Integration Bus software
License
This is a commercially licensed module. But you can use the module on VirtualBox based development systems for FREE. When used on real systems a license is required.
You can license our modules in multiple ways. Our basic licensing model requires a subscription per node. But contact us for details.
Check the License for details.
Description
Our iib_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.
Here is an example on how to use this:
include iib_install::installmq
Check here to see the full documentation for this module.
Setup
Requirements
The iib_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 by Enterprise Modules to use this module.
- Runs on most Linux systems.
- Windows systems are NOT supported
Installing the iib_install module
To install these modules, you can use a Puppetfile
mod 'enterprisemodules/iib_install' ,'1.0.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-iib_install
Usage
Building a total MQ setup requires quite some work. To help you, we have built some examples:
Thes repos contain examples of how you can install and configure a basic IIB setup.
Reference
Here you can find some more information regarding this puppet module:
Here is a related blog posts:
Some example code:
Limitations
This module runs most Linux versions. It requires a puppet version higher than 4. The module does NOT run on windows systems. Contact us of 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
iib_install
: See the file "LICENSE" for the full license governing this code. Unused top level class
Defined types
iib_install::autostart
: This defined type makes sure the specfied IIB broker is automaticaly started at system start.iib_install::installiib
: The defined typeiib_install::installiib
is a convenience type that allows you to install a specific version of the IBM Information Bus (IIB) software on your system.iib_install::os
: Theiib_install::os
defined type is a convenience type for adding IIB os users to the system.iib_install::software
: This defined type install's specified version of the the IIB software in the specified folder.iib_install::software::iib6_unpack
: See the file "LICENSE" for the full license governing this code. IIB 6 and 7 contain a zip in a tar. This class takes care of untarring the
Resource types
iib_install
: Setup the IIB installer.
Tasks
restart
: Restart the specified IIB Broker on the specified nodestart
: Startup the specified IIB Broker on the specified nodestatus
: Fetch the status of the specified IIB Broker on the specified nodestop
: Shutdown the specified IIB Broker on the specified node
Classes
iib_install
See the file "LICENSE" for the full license governing this code.
Unused top level class
Defined types
iib_install::autostart
See the file "LICENSE" for the full license governing this code.
++--++
iib_install::autostart
Here is an example on how to use it:
iib_install::autostart { 'IIBBROKER1':
ensure => 'present',
path => '/etc/systemd/system',
service_name => 'iib@',
install_root => '/opt/IBM',
iib_version => '10.0.0.9',
iib_user => 'iibadmin',
iib_group => 'mqbrkrs',
}
--++--
Parameters
The following parameters are available in the iib_install::autostart
defined type:
ensure
Data type: Enum['present', 'absent']
Tells if you want to make sure the broker is either there or not.
This property has twho possible values present
, which makes sure the broker autostart is present, or absent
which makes sure there is no autostart beeing applied to this broker.
Here is an example on how to use it:
iib_install::autostart { 'IIBBROKER1':
...
ensure => 'present',
...
}
Default value: 'present'
path
Data type: String
Allows you to specify the path where the unit-file will be placed. Here is an example on how to use this:
iib_install::autostart{'IIBBROKER1':
...
path => '/etc/mysystemd/system',
...
}
The default value is `/etc/systemd/system'.
Default value: lookup('iib_install::autostart::path')
service_name
Data type: String
Allows you to specfy the name of the service. Here is an example on how to use this:
iib_install::autostart{'IIBBROKER1':
...
service_name => 'my_iib,
...
}
The default value is : "iib@$broker_name
.
Default value: lookup('iib_install::autostart::service_name')
install_root
Data type: String
Specfies the base path where the software used for the broker, is located,
Together with the iib_version
parameter, this makes the full-path.
iib_install::autostart { 'IIBBROKER1':
...
install_root => '/opt/IBM',
...
}
Default value: lookup('iib_install::autostart::install_root')
iib_version
Data type: String
Specifies the version of IIB that is used for this autostart. This parameter is used to construct the path of the software. Here is an example on how to use it:
iib_install::autostart { 'IIBBROKER1':
...
iib_version => '10.0.0.9',
...
}
Default value: lookup('iib_install::autostart::iib_version')
iib_user
Data type: String
Allows you to specify the OS user the IIB broker will be started under. Here is an example on how to use this:
iib_install::autostart{'IIBBROKER1':
...
iib_user => 'myuser',
...
}
The default value is miibadmin
and is correct in most situations.
Default value: lookup('iib_install::autostart::iib_user')
iib_group
Data type: String
Allows you to specify the OS group the IIB broker will be started under. Here is an example on how to use this:
iib_install::autostart{'BROKER1':
...
iib_group => 'mygroup',
...
}
The default value is mqbrkrs
and is correct in most situations.
Default value: lookup('iib_install::autostart::iib_group')
iib_install::installiib
See the file "LICENSE" for the full license governing this code.
++--++
iib_install::installiib
This defined type has support for installing multiple versions of the IIB software. This feature can help you seamlessly migrate your software from one version of IIB to an other one.
Here is an example on how to use it:
iib_install::installiib {...:
source_location => '/software',
version => '10.0.0.8',
iibadmin_password => 'verysecret',
}
--++--
Parameters
The following parameters are available in the iib_install::installiib
defined type:
source_location
Data type: String[1]
The location of the IIB software. Here is an example on how to use this:
iib_install::... {...:
...
source_location => '/software',
...
}
version
Data type: String[1]
The version of IIB you want to install. Here is an example on how to use it:
iib_install::installiib {...:
...
version => '10.0.0.8',
...
}
iibadmin_password
Data type: Easy_type::Password
The password to be used for the iibadmin
user.
The default is iibadmin
.
Here is an example on how to use it:
iib_install::installiib {...:
...
iibadmin_password => 'verysecret',
...
}
Default value: lookup({name => 'iib_install::installiib::iibadmin_password'})
file_name
Data type: Optional[String[1]]
Default value: undef
iib_install::os
See the file "LICENSE" for the full license governing this code.
++--++
iib_install::os
Using this defined type you can add multiple users to the system.
Here is an example on how to use it:
iib_install::os {'my_iibadmin':
password => 'verysecret',
}
--++--
Parameters
The following parameters are available in the iib_install::os
defined type:
title
The OS user to add to the system and grant access to the MQ groups.
iib_install::os {'iibadmin':
...
}
password
Data type: String
The password to be used for user. The default is the same as the username. Here is an example on how to use this:
iib_install::os {...:
...
password => 'verysecret',
...
}
Default value: $title
iib_install::software
See the file "LICENSE" for the full license governing this code.
++--++
iib_install::software
The source zip file from IBM is found at the location specified at source_location
.
Here is an example on how to use it:
iib_install::software{ '10.0.0.8':
source_location => '/software',
install_root => '/opt/IBM',
tmp_dir => '/mytemp',
logoutput => true,
}
--++--
Parameters
The following parameters are available in the iib_install::software
defined type:
source_location
Data type: String[1]
The location of the IIB software. Here is an example on how to use this:
iib_install::... {...:
...
source_location => '/software',
...
}
install_root
Data type: Stdlib::Absolutepath
The location on the file system where the software will be places. The default is '/opt/IBM'. Here is an example on how to use this:
iib_install::software {...:
...
install_root => /my_opt/IBM',
...
}
Default value: '/opt/IBM'
tmp_dir
Data type: Stdlib::Absolutepath
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:
iib_install::software {...:
...
tmp_dir => /my_tmp',
...
}
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:
iib_install::... {...:
...
logoutput => true,
...
}
Default value: 'on_failure'
file_name
Data type: Optional[String[1]]
Default value: undef
iib_install::software::iib6_unpack
See the file "LICENSE" for the full license governing this code.
IIB 6 and 7 contain a zip in a tar. This class takes care of untarring the toplevel tar.gz file_name and making sure the rest of the puppet code can handle the result
Parameters
The following parameters are available in the iib_install::software::iib6_unpack
defined type:
tmp_dir
Data type: String[1]
source_location
Data type: String[1]
Resource types
iib_install
Setup the IIB installer.
Properties
The following properties are available in the iib_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 iib_install
type.
provider
The specific backend to use for this iib_install
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
Tasks
restart
Restart the specified IIB Broker on the specified node
Supports noop? false
Parameters
broker_name
Data type: Optional[String[1]]
name of the broker
start
Startup the specified IIB Broker on the specified node
Supports noop? false
Parameters
broker_name
Data type: Optional[String[1]]
name of the broker
status
Fetch the status of the specified IIB Broker on the specified node
Supports noop? false
Parameters
broker_name
Data type: Optional[String[1]]
name of the broker
stop
Shutdown the specified IIB Broker on the specified node
Supports noop? false
Parameters
broker_name
Data type: Optional[String[1]]
name of the broker
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
History
1.5.0
- [core] Add support for Puppet 8 and ruby 3.2
1.4.0
- [release] Update dependencies
- [release] Add support for AlmaLinux and Rocky
- [release] Add RHEL8 support to the metadata
- [core] Add easy_type::debug_evaluation to all classes
1.3.0
- [publish] Add puppet 7 support to the metadata
- [installiib] default lookup password value added
- [core] Generate passwords for unspecfied passwords
1.2.2
[software] Make default for file_name parameter undef
1.2.1
- [software] Make data type of variable source location less restrictive
- [ace] Add support for fixpack 4
1.2.0
- [software] Update allowed fixpacks
- [software] Fix usage with known file names
- [software] Add support for ACE 11.1
1.0.15
- [software] Fix installation when patchlevel is below 10.0.0.8
- [autostart] Use FP10 for acceptance test
- [core] Update reference to camptocamp-systemd
1.0.14
- [software] Add support for version 11 and version 10 patchlevels upto 14
- [core] Allow archive module version 3.0.0 and higher
- [release] Fix metadata information
- [core] Rubocop correct
- [sync] Enable PuppetLint
- [iib_full_version] Fix rubocop and fasterer message
1.0.13
- [iib_full_version] Fix error when unreadable version or build is returned
1.0.12
- [tasks] Add restart tasks
- [tasks] Add start task
- [tasks] Add status task
- [tasks] Add stop task
1.0.11
- [release] Add license notce, license text and readme
- [release] Always install spec_helper
1.0.10
- [os] Fix password setting for iibadmi user
- [release] Make some gems optional for rake
- [quality] Fix rubocop issue
1.0.9
- [software] Add support for Fixpack 11
1.0.8
- [autostart] Initial implementation for RHEL 6 and 7
- [software] Fix compatibility with Puppet version 4.4 and lower
- [software] Better checks and better warnings
- [software] Fix error in compile when fact not set (Initial run)
1.0.7
- [software] Add support for Fixpack 10
1.0.6
- [software] Add support for puppet urls
1.0.5
- [software] Added support for patch_level 9
1.0.4
- [core] Removed bindings and added type
1.0.3
- [os] Add mqm group creation
1.0.2
- [core] Fix bindings
- [facts] Remove debug puts
1.0.1
- [core] Added bindings
1.0.0
- [docs] Added documentation
- [facts] Improve the version detection
- [facts] Add support to symbolic links for iib_full_versions
0.0.2
- [software] Change default for install_root to /opt/IBM
- [os] Manage user home and add add group mqm
- [installiib] Make password configurable
- [os] Fix puppet naming error
- [software] Add support for multiple versions
- [software] Add support for fixpack 8
- [software] Make Puppet title for license acceptance more specific
0.0.1
- [installiib] Initial version
Dependencies
- puppetlabs-stdlib (>= 4.0.0 <= 10.0.0)
- AlexCline-dirtree (>= 0.2.1 < 1.0.0)
- enterprisemodules-iib_config (>= 1.0.0 < 2.0.0)
- puppet-archive (>= 3.0.0 < 8.0.0)
- puppet-systemd (>= 3.0.0 < 6.0.0)
- enterprisemodules-easy_type (>= 2.2.8 < 3.0.0)
Enterprise Modules License d.d. January 2018 This license (“License”) governs the terms and conditions under which iib_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.