Configure and Load kernel modules.
- CentOS 6.x/7.x
- RHEL 6.x/7.x
- OEL 6.x/7.x
- Ubuntu 16.04
- Chef version: >= 12.5.1
node['kernel_modules']['packages']
- used to make the packages requirementsnode['kernel_modules']['modules_load.d']
- used to define themodules_load.d
directorynode['kernel_modules']['modprobe.d']
- use to define themodprobe.d
directorynode['kernel_modules']['modules']
- use to define the list of modules you want to load/configurenode['kernel_modules']['default_module_action']
- use to define default action for the attribute driven recipe
Using this cookbook will load and configure every module in the attribute: node['kernel_modules']['modules']
.
For instance:
$ cat roles/modules.rb
name 'Load modules'
description 'Example for using kernel modules'
run_list(
'kernel-modules'
)
default_attributes(
kernel_modules:
modules: {
nfs: {
options: [
'enable_ino64=1',
'nfs4_disable_idmapping=0',
],
alias: 'nfs4',
action: [:load],
onboot: true,
},
},
)
This provider allows to configure and load a kernel module
Action | Description |
---|---|
configure | Add the module at boot time (if needed) and set the module's modprobe configuration file |
load | Load the module once it is configured (When used the configure action will be implicitly launched before) |
unload | Unload the module |
remove | Remove the modprobe configuration file and remove the module at boot time |
Name | Description | Default | Type |
---|---|---|---|
module_name |
module name | name | String |
onboot |
load the module at boot time | true | Boolean |
reload |
allow the module to be reloaded if module configuration changes | false | Boolean |
force_reload |
allow the module to be unloaded even if the module is used[^1]. | false | Boolean |
alias |
set the modprobe command alias | nil | Array/String |
options |
set the modprobe command options | nil | Array/String/NilClass |
install |
set the modprobe command install | nil | String/NilClass |
remove |
set the modprobe command remove | nil | String/NilClass |
blacklist |
set the modprobe command blacklist | nil | Boolean/NilClass |
check_availability |
before loading or configuring, ensure the module is available on disk for the running kernel | false | Boolean |
For instance:
# To load and configure "mlx4_en"
kernel_module 'mlx4_en' do
onboot true # Make the loading persistent
reload false # We don't want to reload our network module
options %w(inline_thold=120 udp_rss=1) # Specific loading options
check_availability true # Only load and configure when module is present
end
# To blacklist a module
kernel_module 'pcspkr' do
onboot true
blacklist true
end
- Fork the repository on Github
- Create a named feature branch (like
add_component_x
) - Write your change
- Write tests for your change (if applicable)
- Run the tests, ensuring they all pass
- Submit a Pull Request using Github
Authors: Jeremy Mauro ([email protected])
Copyright 2014-2015, Criteo.
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.
[^1]Note: it has no effect unless CONFIG_MODULE_FORCE_UNLOAD was set when the kernel was compiled