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.10 < 7.0.0
- , , ,
Start using this module
Add this module to your Puppetfile:
mod 'horsefish-bmc', '0.1.12'
Learn more about managing modules with a PuppetfileDocumentation
Baseboard Management Controller module
Table of Contents
Overview
This module configures the Remote Management System (Baseboard Management Controller) on Enterprise servers.
Module Description
You can configure the BMC's LAN, LDAP and SSL certificates and manage the local users.
Can use IPMItool require at least version 1.8.18 or a server provider specific tool (ie. racadm) to do the actual communication with the BMC.
Setup
What this module affects: This module affect's configures the BMC controller.
Setup Requirements
- PuppetLabs stdlib module
- PuppetLabs apt module
- Puppet version >= 4.10.x
- Facter version >= 2.4.3
Beginning with bmc
To begin using the bmc module just include the bmc module and it will install ipmitools or 3rd party OEM sofware if it is on supported hardware.
include bmc
If you don't have access to the internet you can manage if 3rd party repositores should be installed.
class { 'bmc':
manage_oem_repo => false,
}
Usage
Simple user
To setup a bmc_user with username 'simple' with password: password
bmc_user { 'simple':
password => 'password',
}
A more complex user
A bmc user that only can use ipmi
bmc_user { 'More complex':
password => 'password',
callin => false,
ipmi => true,
link => false,
}
A very complex user
A bmc user with administrator privilege on channel 2 and user privilege on channel 1.
bmc_user { 'Very complex':
password => 'password',
callin => false,
ipmi => true,
privilege =>
{
'1' => user,
'2' => administrator,
},
}
With access to iDRAC with admin rights
bmc_user { 'idrac_admin':
password => 'password',
callin => true,
ipmi => true,
link => true,
idrac => 0x1ff,
}
To change the SSL certificate
bmc_ssl { 'IDRAC ssl':
certificate_file => '/etc/ssl/private/idrac.pem',
certificate_key => '/etc/ssl/private/idrac.key',
bmc_username => 'root',
bmc_password => '<idrac_root_password>',
bmc_server_host => '192.168.0.2',
}
A normal setup would be
bmc_user { 'root':
password => 'mypassword',
}
bmc_ssl { 'IDRAC ssl':
certificate_file => '/etc/ssl/private/idrac.pem',
certificate_key => '/etc/ssl/private/idrac.key',
}
Configure the NIC to use DHCP
bmc_network { 'bmc_network':
}
Configure a static NIC setup
bmc_network { 'bmc_network':
ip_source => static,
ipv4_ip_address => '192.168.0.2',
ipv4_gateway => '192.168.0.1',
ipv4_netmask => '255.255.255.0',
}
Configure LDAP
bmc_ldap{'my_ldap' :
server => 'ldap.example.com',
base_dn => 'CN=users,CN=accounts,DC=example,DC=com',
}
Configure LDAP groups
bmc_ldap_group{'1' :
server => 'ldap.example.com',
base_dn => 'CN=users,CN=accounts,DC=example,DC=com',
}
Configure NTP
bmc_time{'my_ntp' :
ntp_servers => ['ntp01.example.com','ntp02.example.com'],
}
Configure syslog
bmc_syslog{'my_syslog' :
syslog_servers => ['syslog01.example.com'],
}
Operating Systems Support
This is tested on these OS:
- Ubuntu 14.04
- Centos 7.6
- FreeBSD 11.2, 12.0
Development
To develop (and test) providers we need access to as many and divert BMC's as possible. So if you have access to a server from HP, Dell, Intel, IBM, Oracle(SUN) where you will provide us admin rights for both BMC and OS please contact us.
Pull requests (PR) and bug reports via GitHub are welcomed.
When submitting PR please follow these quidelines:
- Provide puppet-lint compliant code
- If possible provide rspec tests
- Follow the module style and stdmod naming standards
When submitting bug report please include or link:
- The Puppet code that triggers the error
- The output of facter on the system where you try it
- All the relevant error logs
- Any other information useful to undestand the context
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.1.12
Summary
- Module is now PDK 1.18.1 compliant
Fixed
- idrac has removed function getconfig
0.1.11
Summary
- Avoid warnings if both ipmitools and omsa is installed.
0.1.10
Summary
- Updated module dependencies
- Changed OpenManage version to 9.3.0 for Ubuntu 18.04
0.1.9
Summary
- Module is now PDK 1.14.0 compliant
Fixed
- Project_page is now correct (Thanks to Oleg Ginzburg)
- Ipmitool is installed on a different location in FreeBSD
0.1.8
Fixed
- Bmc_user and Bmc_ldap_group: Could not evaluate: wrong number of arguments (0 for 1)
0.1.7
Summary
- Module is now PDK 1.13.0 compliant
Added
- Initial support for Dell Bios configuration. This is work in progress because some of the Bios configuration in some situations has to be done before a OS is installed and right now it is not clear how this is done best. Eventually this should also be moved to independent module.
0.1.6
Summary
- Module is now PDK 1.9.0 compliant
Added
- Support for syslog configuration (Thanks to Xand Meaden)
0.1.5
Summary
- Module is now PDK 1.8.0 compliant
Fixed
- bmc_user racadm provider id was never set in prefetch
Added
- More unit tests
- Support for FreeBSD (Thanks to Eirik Øverby)
Changed
- Fix typos
- Dropped test running Puppet 3
Supported Release 0.1.4
Sumary
- Bugfix release
Fixed
- BMC ipmitool provider was broken
Supported Release 0.1.3
Summary
- Module is now PDK 1.7.1 compliant
Added
- More versions of Ubuntu is now supported
Changed
- Fix typos
- Changed data_provider to hiera
- Made installation of ipmitool optional
Removed
- Fact manufactor_id because it depended on ipmitool
Fixed
- ensure = absent|purged is now working as intended
Supported Release 0.1.2
Summary
- Module is now PDK 1.7.0 compliant
Supported Release 0.1.1
Summary
- Module is now PDK 1.6.0 compliant
Supported Release 0.1.0
Summary
- Made change to init arguments so we dont need to change API when we add support for more BMC's
- Module is now PDK 1.5.0 compliant
Changed
- bmc
- change parameter name to manage_oem_repo because it more informativ.
- change parameter name and type to oem_software of type Array to better support remote setup.
Supported Release 0.0.4
Summary
- Module is now PDK compliant
Changed
- bmc_user
- better support for channels in bmc_user ipmi provider.
Supported Release 0.0.3
Summary
- Puppet4 data types used.
Added
- bmc_user
- general support for enable/disable user.
Supported Release 0.0.2
Added
- bmc_user
- support for enable/disable when using racadm provider
- bmc_network
- support for more API calls exposed by racadm
- performance improvments
- other
- more robust manufactor_id fact
Removed
- bmc_network
- removed defaultto from most property
Supported Release 0.0.1
Summary
Added
- support for bmc_user
- support for bmc_network
- support for bmc_ssl
- support for bmc_ldap
- support for ldap_groups
Known issues
- Still under heavy development and NO API are frozen - so use with caution
Dependencies
- puppetlabs/stdlib (>= 4.16.0 < 7.0.0)
- puppetlabs/apt (>= 2.0.0 < 8.0.0)