Version information
This version is compatible with:
- Puppet Enterprise 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
- Puppet >= 5.5.0 < 7.0.0
- , , ,
Start using this module
Add this module to your Puppetfile:
mod 'arden-dmmultipath', '0.1.2'
Learn more about managing modules with a PuppetfileDocumentation
dmmultipath
Table of Contents
- Description
- Setup - The basics of getting started with dmmultipath
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Description
This module configures the DM Multipath module for a given device or set of devices.
Setup
There are no external dependencies for this module aside from standard system packages.
Beginning with dmmultipath
For this module to work the class must be included with at least one enabled storage controller.
class { 'dmmultipath':
enabled_devices => ['ibm_2145'],
}
This can also be achieved via hiera.
---
dmmultipath::enabled_devices:
- 'ibm_2145'
include 'dmmultipath'
Usage
The base configuration will provide sane defaults for the ibm_2145 device, enable the multipathd service at boot, and configure a 120 second timeout for all corresponding disk devices via udev. In addition, a regeneration of the initramfs for the current kernel can also be configured. This ensures that the appropriate multipath settings are available from the time of boot.
class { 'dmmultipath':
regen_initramfs => true,
enabled_devices => ['ibm_2145'],
}
Limitations
Operating System Support
- RedHat Family 7.x (CentOS and RHEL)
Controller Support
A full listing of supported types can be found in the definition of the Dmmultipath::SupportedModels type.
- IBM Spectrum Virtualize (SVC and Storwize) systems.
Development
TBD. Create an issue and we'll figure it out from there.
Contributors
Check out the contributor list.
Changelog
All feature updates for this module can be found in the changelog.
Reference
Table of Contents
Classes
dmmultipath
: A short summary of the purpose of this classdmmultipath::configure
: Create the directory structure and each config filedmmultipath::install
: Install any necessary packages for DM Multipathdmmultipath::service
: Enable the multipathd service and regenerate initramfs (maybe)
Classes
dmmultipath
A description of what this class does
Examples
Default config enabling storwize
class { 'dmmultipath':
enabled_devices => ['ibm_2145'],
}
Storwize with all options enabled
class { 'dmmultipath':
find_multipaths => true,
user_friendly_names => true,
udev_rules => true,
regen_initramfs => true,
config_dir => '/etc/multipath/conf.d',
udev_rules_dir => '/etc/udev/rules.d',
enabled_devices => ['ibm_2145'],
}
Parameters
The following parameters are available in the dmmultipath
class.
find_multipaths
Data type: Boolean
Sets the default parameter 'find_multipaths' to yes or no.
Default value: false
user_friendly_names
Data type: Boolean
Sets the default parameter 'user_friendly_names' to yes or no. This controls whether device alias names like 'mpatha' are automatically created.
Default value: true
udev_rules
Data type: Boolean
When enabled any udev rules relevant to enabled device types will be configured for this system.
Default value: true
regen_initramfs
Data type: Boolean
If enabled the initramfs will be regenerated for this machine. Note that this can be crucial for SAN boot systems as they need multipathing to be up and running when the system comes online.
Default value: false
config_dir
Data type: Stdlib::Absolutepath
Location of the multipath config files which will be read in and combined with the base '/etc/multipath.conf'. Typically this is '/etc/multipath/conf.d'.
Default value: '/etc/multipath/conf.d'
udev_rules_dir
Data type: Stdlib::Absolutepath
Location where additional udev rules should be defined. Typically this is '/etc/udev/rules.d'.
Default value: '/etc/udev/rules.d'
enabled_devices
Data type: Array[Dmmultipath::SupportedModels]
List of device types to enable on this system. Currently only ibm_2145 is supported by this module.
Default value: undef
dev_data
Data type: Hash[Dmmultipath::SupportedModels,Dmmultipath::Device]
This hash contains pre-configured lists of multipath 'device' directives. If a given device is enabled via $enabled_devices the corresponding values present in this hash will be used to create a file in the multipath config directory.
Default value: undef
dev_udev_data
Data type: Hash[Dmmultipath::SupportedModels,Dmmultipath::DeviceUdev]
Contains udev parameters for the provided device type. Note that this currently only supports SCSI timeouts. If udev_rules is enabled rules corresponding to the devices in $enabled_devices will be generated.
Default value: undef
packages
Data type: Array[String]
List of packages which should be installed for proper multipathing functionality.
Default value: undef
dmmultipath::configure
Private class responsible for creating config files & directory structure
dmmultipath::install
A simple internal class which manages all install-time steps
dmmultipath::service
Private class which manages services and other post-config activity.
Changelog
All notable changes to this project will be documented in this file.
Release 0.1.2
Features
- Updated PDK to version 1.13.x
Bugfixes
- Converted the initramfs generation code such that it operates via refreshonly instead of attempting to checksum the resulting file
Release 0.1.1
Features
- Updated PDK to version 1.9.x
Bugfixes
- Switched package declaration ensure statement from 'installed' to 'present' for compatibility with the stdlib function ensure_packages
Release 0.1.0
Features
- Support for IBM Storwize / SVC
Bugfixes
- None yet...
Known Issues
- None known...
Dependencies
- puppetlabs/stdlib (>= 4.13.1 < 7.0.0)