Manages the OpenIPMI package
Installs the OpemIPMI package,
provides IPMI facts in a format compatible with
The Foreman's
BMC features
and enables the ipmi
service. The latter loads the kernel drivers
needed for communicating with the BMC from user space.
include ipmi
Create a user with admin privileges (default):
ipmi::user { 'newuser1':
user => 'newuser1',
password => 'password1',
user_id => 4,
}
Create a user with operator privileges:
ipmi::user { 'newuser2':
user => 'newuser2',
password => 'password2',
priv => 3,
user_id => 5,
}
Configure a static ip on IPMI lan channel 1:
ipmi::network { 'lan1':
type => 'static',
ip => '192.168.1.10',
netmask => '255.255.255.0',
gateway => '192.168.1.1',
}
Configure IPMI lan channel 1 to DHCP:
ipmi::network { 'dhcp': }
Configure IPMI snmp string on lan channel 1:
ipmi::snmp { 'lan1':
snmp => 'secret',
lan_channel => 1,
}
# defaults
class { 'ipmi':
service_ensure => 'running', # default is 'running'
ipmievd_service_ensure => 'running', # default is 'stopped'
watchdog => true, # default is false
}
String
defaults to: running
Possible values: running
, stopped
Controls the state of the ipmi
service.
String
defaults to: stopped
Possible values: running
, stopped
Controls the state of the ipmievd
service.
Boolean
defaults to: false
Controls whether the IPMI watchdog is enabled.
# defaults
ipmi::user { 'newuser':
user => 'root',
priv => 4, # Administrator
user_id => 3,
}
String
defaults to: root
Controls the username of the user to be created.
String
- required field
Controls the password of the user to be created.
Integer
defaults to: 4
Possible values:
4
- ADMINISTRATOR,
3
- OPERATOR,
2
- USER,
1
- CALLBACK
Controls the rights of the user to be created.
Integer
defaults to: 3
The user id of the user to be created. Should be unique from existing users. On SuperMicro IPMI, user id 2 is reserved for the ADMIN user.
# defaults
ipmi::network { 'lan1':
type => 'dhcp',
ip => '0.0.0.0',
netmask => '255.255.255.0',
gateway => '0.0.0.0',
lan_channel => 1,
}
String
defaults to: dhcp
Possible values: dhcp
, static
Controls the if IP will be from DHCP or Static.
String
defaults to: 0.0.0.0
Controls the IP of the IPMI network.
String
defaults to: 255.255.255.0
Controls the subnet mask of the IPMI network.
String
defaults to: 0.0.0.0
Controls the gateway of the IPMI network.
Integer
defaults to: 1
Controls the lan channel of the IPMI network to be configured.
# defaults
ipmi::snmp { 'lan1':
snmp => 'public',
lan_channel => 1,
}
String
defaults to: public
Controls the snmp string of the IPMI network interface.
Integer
defaults to: 1
Controls the lan channel of the IPMI network on which snmp is to be configured.
This module provides additional facts for Facter with the following format:
ipmi1_gateway => 192.168.10.1
ipmi1_ipaddress => 192.168.10.201
ipmi1_ipaddress_source => Static Address
ipmi1_macaddress => 00:30:48:c9:64:2a
ipmi1_subnet_mask => 255.255.255.0
where the 1 in ipmi1
corresponds to the channel according to
ipmitool lan print
.
Additionally for compatibility with The Foreman, the first IPMI
interface (i.e. the one from ipmi lan print 1
) gets all facts
repeated as just ipmi_foo
:
ipmi_gateway => 192.168.10.1
ipmi_ipaddress => 192.168.10.201
ipmi_ipaddress_source => Static Address
ipmi_macaddress => 00:30:48:c9:64:2a
ipmi_subnet_mask => 255.255.255.0
At present, only support for RedHat and Debian distributions has been implemented.
Adding other Linux distrubtions should be trivial.
- el5.x
- el6.x
- el7.x
- Debian
- Ubuntu
Versions | Puppet 2.7 | Puppet 3.x | Puppet 4.x |
---|---|---|---|
1.x | yes | yes | no |
2.x | no | yes | yes |
This module is versioned according to the Semantic Versioning 2.0.0 specification.
Please log tickets and issues at github
- Fork it on github
- Make a local clone of your fork
- Create a topic branch. Eg,
feature/mousetrap
- Make/commit changes
- Commit messages should be in imperative tense
- Check that linter warnings or errors are not introduced -
bundle exec rake lint
- Check that
Rspec-puppet
unit tests are not broken and coverage is added for new features -bundle exec rake spec
- Documentation of API/features is updated as appropriate in the README
- If present,
beaker
acceptance tests should be run and potentially updated -bundle exec rake beaker
- When the feature is complete, rebase / squash the branch history as necessary to remove "fix typo", "oops", "whitespace" and other trivial commits
- Push the topic branch to github
- Open a Pull Request (PR) from the topic branch onto parent repo's
master
branch