cookbook 'chef-ibmc-cookbook', '= 0.1.0', :supermarket
chef-ibmc-cookbook (4) Versions 0.1.0 Follow0
Configure Huawei iBMC
cookbook 'chef-ibmc-cookbook', '= 0.1.0'
knife supermarket install chef-ibmc-cookbook
knife supermarket download chef-ibmc-cookbook
ibmc Cookbook
This cookbook provides resources for configuring Huawei iBMC via their APIs. Included resources:
- BIOS Management(
ibmc_bios
) - Driver Management(
ibmc_driver
) - Firmware Management(
ibmc_firmware
) - System Health Management
- CPU Health(
ibmc_health_cpu
) - Drive Health(
ibmc_health_drive
) - Fan Health(
ibmc_health_fan
) - Memory Health(
ibmc_health_memory
) - Power Supply Health(
ibmc_health_psu
) - RAID Health(
ibmc_health_raid
)
- CPU Health(
- Indicator State of Chassis Management(
ibmc_led
) - License Management(
ibmc_license
) - DNS Management(
ibmc_network_dns
) - IPv4 Network Management(
ibmc_network_ipv4
) - IPv6 Network Management(
ibmc_network_ipv6
) - IP Version Management(
ibmc_network_ipversion
) - VLAN Management(
ibmc_network_vlan
) - Manager Ethernet Interface Management(
ibmc_network
) - NTP Service Management(
ibmc_ntp
) - Boot Management(
ibmc_os_boot
) - CPU Management(
ibmc_os_cpu
) - Physical Disk Management(
ibmc_os_drive
) - OS Ethernet Information Management(
ibmc_os_eth
) - Memory Management(
ibmc_os_memory
) - OS Power Management(
ibmc_os_power
) - Product Information Management(
ibmc_os_product
) - RAID Information Management(
ibmc_os_raid
) - OS Management(
ibmc_os
) - BMC Power Management(
ibmc_power
) - Network Service Management(
ibmc_service
) - SMTP Service Management(
ibmc_smtp
) - SNMP Service Management(
ibmc_snmp
) - SP Service Management(
ibmc_sp
) - User Management(
ibmc_user
) - Virtual Media Management(
ibmc_vm
)
Requirements
Platforms
- Ubuntu 14.04+
- CentOS 7+
Chef
- Chef 13.0+
Cookbooks
- none
How to use the iBMC Cookbook:
This cookbook is not intended to include any recipes. Use it by specifiying a dependency on this cookbook in your own cookbook.
# my_cookbook/metadata.rb
...
depends 'ibmc'
Credentials
In order to use iBMC API, authentication credential needs to be present. There are 3 ways to handle this:
- Using resource parameters(highest precedence)
- Using attributes
- Using data bag(lowest precedence)
Using resource parameters
All iBMC custom resources have iBMC credential properties:
- ibmc_host
: String, iBMC host address
- ibmc_port
: Integer, iBMC port
- ibmc_username
: String, iBMC username
- ibmc_password
: String, iBMC password
ibmc_bios 'get bios' do
ibmc_host 'ibmc-host'
ibmc_port 443
ibmc_username 'ibmc-user'
ibmc_password 'ibmc-pass'
attribute 'bios-attribute'
action :get
end
Using attributes
Example Attributes: ```ruby
/attributes/default.rb
default['ibmc']['main'] = { 'host': 'ibmc-host', 'port': 443, 'username': 'ibmc-user', 'password': 'ibmc-pass' } ```
Then, you can use iBMC custom resource like this:
ruby
ibmc_bios 'get bios' do
attribute 'bios-attribute'
action :get
end
Using data bag
Example Data Bag:
json
% knife data bag show ibmc main
{
"host": "ibmc-host",
"port": 443,
"username": "ibmc-user",
"password": "ibmc-pass"
}
Then you can use iBMC custom resource like this:
ibmc_bios 'get bios' do
attribute 'bios-attribute'
action :get
end
Resources
All resource has no default action, so action must be set explicitly.
ibmc_bios
Manage BIOS
Actions:
-
get
: Get BIOS information.- Properties:
-
attribute
: String. Required.
BIOS attribute.
-
set
: Set BIOS attributes.- Properties:
-
attribute
: String. Required.
BIOS attribute. -
value
: String. Required.BIOS attribute value.
restore
: Restore BIOS default settings.
Examples:
ibmc_bios 'get' do
attribute 'attribute-name'
action :get
end
ibmc_driver
Manage driver
Actions:
-
get
: Get driver.- Properties:
-
file
: String.
The loacl path of the configuration file.
-
upgrade
: Upgrade driver.- Properties:
-
image_uri
: String. Required.
Path of the upgrade package which can be IP/tmp/filename for a package on the BMC or IP/directory/filename for a package on a remote server. -
signature_uri
: String. Required.Path of the upgrade package digital signature file which can be IP/tmp/filename for a signature file on the BMC or IP/directory/filename for a signature file on a remote server. -
parameter
: String. Required.all
indicates the entire upgrade package or a specific upgrade package (for example package1.rpm). -mode
: String. Required.Mode of the upgrade. Value could be
Auto
,Full
,Recover
,APP
orDriver
. -active_method
: String. Required.How does the upgrade take effect. Value could be
OSRestart
orServerRestart
.
Examples:
ibmc_driver 'get' do
action :get
end
ibmc_driver 'upgrade' do
image_uri 'image uri'
signature_uri 'signature uri'
parameter 'all'
mode 'Auto'
active_method 'OSRestart'
action :upgrade
end
ibmc_firmware
Manage firmware
Actions:
-
get
: Get firmware.- Properties:
None
-
upgrade
: Upgrade firmware.- Properties:
-
image_uri
: String.
Path of the upgrade package on the a remote server. (e.g., protocol://username:password@ip/directory/filename. Supported protocols include https, scp, sftp, cifs and nfs.)
Examples:
ibmc_firmware 'get' do
action :get
end
ibmc_health_cpu
Manage CPU health
Actions:
-
get
: Get CPU health.- Properties:
None
Examples:
ibmc_health_cpu 'get' do
action :get
end
ibmc_health_drive
Manage drive health
Actions:
-
get
: Get drive health.- Properties:
-
drive_id
: Integer.
Driver identifier.
Examples:
ibmc_health_drive 'get' do
action :get
end
ibmc_health_fan
Manage fan health
Actions:
-
get
: Get fan health.- Properties:
None
Examples:
ibmc_health_fan 'get' do
action :get
end
ibmc_health_memory
Manage memory health
Actions:
-
get
: Get memory health.- Properties:
None
Examples:
ibmc_health_memory 'get' do
action :get
end
ibmc_health_psu
Manage power supply health
Actions:
-
get
: Get power supply health.- Properties:
None
Examples:
ibmc_health_psu 'get' do
action :get
end
ibmc_health_raid
Manage RAID health
Actions:
-
get
: Get RAID health.- Properties:
None
Examples:
ibmc_health_raid 'get' do
action :get
end
ibmc_led
Manage indicator state of chassis
Actions:
-
set
: Set indicator state of chassis.- Properties:
-
state
: String. Required.
Indicator state of chassis. Value could be
Lit
,Off
orBlinking
.
Examples:
ibmc_led 'light up' do
set 'Lit'
action :set
end
ibmc_license
Manage iBMC license
Actions:
-
install
: Install license.- Properties:
-
source
: String. DefaultiBMC
. Required.
License source. Value could be
iBMC
,FusionDirector
oreSight
. -type
: String. Required.Content type. Value could be
URI
orText
. -content
: String. Required.Content of license. License text content if
type
isText
while license file uri iftype
isURI
. -
export
: Export license.- Properties:
-
export_to
: String. Required.
The license file URI to be export to.
-
delete
: Delete license.- Properties:
None
Examples:
ibmc_license 'install' do
type 'URI'
content 'License URI'
action :install
end
ibmc_network_dns
Manage DNS
Actions:
-
set
: Set DNS information.- Properties:
-
address_origin
: String.
How DNS server information is obtained. Value coule be
Static
,IPv4
orIPv6
. -hostname
: String.iBMC hostname. -
domain
: String.Server domain. -
preferred_server
: String.IP address of the preferred DNS server. -
alternate_server
: String.IP address of the alternate DNS server.
Examples:
ibmc_network_dns 'set' do
address_origin 'Static'
action :set
end
ibmc_network_ipv4
Manage IPv4 Network
Actions:
-
set
: Set IPv4 network.- Properties:
-
address
: String.
IPv4 address of the iBMC network port. -
origin
: String.How the IPv4 address is allocated. Value could be
Static
orDHCP
. -gateway
: String.Gateway IPv4 address of the iBMC network port. -
mask
: String.Subnet mask of the iBMC network port.
Examples:
ibmc_network_ipv4 'set' do
address '192.168.5.101'
origin 'Static'
gateway '192.168.5.1'
mask '255.255.255.0'
action :set
end
ibmc_network_ipv6
Manage IPv6 Network
Actions:
-
set
: Set IPv6 network.- Properties:
-
address
: String.
IPv6 address of the iBMC network port. -
origin
: String.How the IPv6 address is allocated. Value could be
Static
orDHCPv6
. -gateway
: String.Gateway IPv6 address of the iBMC network port. -
prefix_len
: Integer.IPv6 address prefix length of the iBMC network port.
Examples:
ibmc_network_ipv6 'set' do
origin 'Static'
action :set
end
ibmc_network_ipversion
Manage IP version
Actions:
-
set
: Set IP version.- Properties:
-
version
: String. Required.
Enabled version of IP protocol. Value could be
IPv4AndIPv6
,IPv4
orIPv6
.
Examples:
ibmc_network_ipversion 'set' do
version 'IPv4AndIPv6'
action :set
end
ibmc_network_vlan
Manage VLAN network
Actions:
-
set
: Set VLAN network.- Properties:
-
enabled
:true
orfalse
.
Whether VLAN is enabled. -
id
: Integer.VLAN identifier.
Examples:
ibmc_network_vlan 'set' do
enabled true
id 1111
action :set
end
ibmc_network
Manage BMC ethernet interface
Actions:
-
get
: Get BMC ethernet interface information.- Properties:
None
Examples:
ibmc_network 'get' do
action :get
end
ibmc_ntp
Manage NTP service
Actions:
-
get
: Get NTP service.- Properties:
None
-
set
: Set NTP service.- Properties:
-
ntp_addr_origin
: String.
NTP mode. Value could be
Static
,IPv4
orIPv6
. -service_enabled
:true
orfalse
.Whether NTP service is enabled. -
pre_ntp_server
: String.Preferred NTP server address. -
alt_ntp_server
: String.Alternative NTP server address. -
min_polling_interval
: Integer.Minimum NTP synchronization interval. Value ranges from 3 to 17. -
max_polling_interval
: Integer.Maximum NTP synchronization interval. Value ranges from 3 to 17. -
server_auth_enabled
:true
orfalse
.Whether authentication enabled.
Examples:
ibmc_ntp 'get' do
action :get
end
ibmc_os_boot
Manage OS boot setting
Actions:
-
get
: Get OS boot setting.- Properties:
None
-
set_order
: Set OS boot order.- Properties:
-
seq
: Array. Required.
System boot order. Value should be an array of all boot device. Boot device could be
Cd
,Pxe
,Hdd
orOthers
. -
set_override
: Set OS boot source override.- Properties:
-
target
: String. Required.
Boot source override target. Value could be
None
,Pxe
,Floppy
,Cd
,Hdd
orBiosSetup
. -enabled
: String. Required.Boot source override enabled. Value could be
Once
,Disabled
orContinuous
. -mode
: String. Required.Boot source override mode. Value could be
Legacy
orUEFI
.
Examples:
ibmc_os_boot 'get boot info' do
action :get
end
ibmc_os_boot 'set boot order' do
seq ['Cd', 'Pxe', 'Hdd', 'Others']
action :set_order
end
ibmc_os_cpu
Manage OS cpu
Actions:
-
get
: Get OS cpu information.- Properties:
None
Examples:
ibmc_os_cpu 'get' do
action :get
end
ibmc_os_drive
Manage physical disk
Actions:
-
get
: Get the physical disk information.- Properties:
-
id
: Integer.
Physical disk id.
Examples:
ibmc_os_drive 'get' do
action :get
end
ibmc_os_eth
Manage OS ethernet interface
Actions:
-
get
: Get OS ethernet interface information.- Properties:
-
id
: String.
Network interface resource ID.
Examples:
ibmc_os_eth
action :get
end
ibmc_os_memory
Manage OS memory
Actions:
-
get
: Get OS memory information.- Properties:
None
Examples:
ibmc_os_memory 'get' do
action :get
end
ibmc_os_power
Manage OS power
Actions:
-
set
: Set OS power.- Properties:
-
reset_type
: String. Required.
System power reset type. Value could be
On
,ForceOff
,GracefulShutdown
,ForceRestart
,Nmi
orForcePowerCycle
.
Examples:
ibmc_os_power 'set' do
reset_type 'On'
action :set
end
ibmc_os_product
Manage product information
Actions:
-
get
: Get product information.- Properties:
None
-
set
: Set product information.- Properties:
-
asset_tag
: String.
Asset tag. -
product_alias
: String.Product alias.
Examples:
ibmc_os_product 'get' do
action :get
end
ibmc_os_raid
Manage RAID information
Actions:
-
get
: Get RAID information- Properties:
-
controller_id
: Integer.
Controller ID. -
logical_drive_id
: Integer.Virtual disk ID.
Examples:
ibmc_os_raid 'get' do
action :get
end
ibmc_os
Manage OS
Actions:
-
install
: Install OS- Properties:
-
file
: String. Required.
SP Configuration file.
Examples:
ibmc_os 'install' do
file 'config file path'
action :install
end
ibmc_power
Manage BMC power
Actions:
-
restart
: Restart BMC.- Properties:
None
Examples:
ibmc_power 'restart' do
action :restart
end
ibmc_service
Manage network service
Actions:
-
get
: Get network service information.- Properties:
-
protocol
: String.
Service protocol. Value could be
HTTP
,HTTPS
,SNMP
,VirtualMedia
,IPMI
,SSH
,KVMIP
,SSDP
orVNC
. -
set
: Set netowrk service information.- Properties:
-
protocol
: String. Required.
Service protocol. Value could be
HTTP
,HTTPS
,SNMP
,VirtualMedia
,IPMI
,SSH
,KVMIP
,SSDP
orVNC
. -state
:true
orfalse
.Whether service enabled. -
port
: Integer.Service port. -
notify_ttl
: Integer.Time for which the SSDP messages are valid. Value range from 1 to 255 -
notify_ipv6_scope
: String.IPv6 multicast range of SSDP messages. Value could be
Link
,Site
orOrganization
. -notify_multi_cast_interval
: Integer.SSDP message multicast interval(in seconds).
Examples:
ibmc_service 'get all service' do
action :get
end
ibmc_service 'set HTTP service' do
protocol 'HTTP'
state true
port 80
action :set
end
ibmc_smtp
Manage SMTP service
Actions:
-
get
: Get SMTP service information.- Properties:
None
-
set
: Set SMTP service information.- Properties:
-
service_enabled
:true
orfalse
.
Whether SMTP service enabled. -
server_addr
: String.SMTP server address. -
tls_enabled
:true
orfalse
.Whether SMTP TLS enabled. -
anonymous_login_enabled
:true
orfalse
.Whether anonymous login enabled. -
sender_addr
: String.Email sender address. -
sender_password
: String.Email sender password. -
sender_username
: String.Email sender username. -
email_subject
: String.Email subject. -
email_subject_contains
: Array.Email subject keywords. Should be an array of keyword. Keyword could be
HostName
,BoardSN
orProductAssetTag
. -alarm_severity
: String.Severity level of alarm to be sent. Value could be
Critical
,Major
,Minor
orNormal
.
Examples:
ibmc_smtp 'get' do
action :get
end
ibmc_snmp
Manage SNMP service
Actions:
-
get
: Get SNMP service information.- Properties:
None
-
set
: Set SNMP service information.- Properties:
-
v1_enabled
:true
orfalse
.
Whether SNMPv1 enabled. -
v2_enabled
:true
orfalse
.Whether SNMPv2 enabled. -
long_pass_enabled
:true
orfalse
.Whether long password enabled. -
rw_community_enabled
:true
orfalse
.Whether read-write community name enabled. -
readonly_community
: String.Read-only community name. -
readwrite_community
: String.Read-write community name. -
v3_auth_protocol
: String.SNMPv3 authentication algorithm. Value could be
MD5
orSHA1
-v3_priv_protocol
: String.SNMPv3 encryption algorithm. Value could be
DES
orAES
. -service_enabled
:true
orfalse
.Whether trap is enabled. -
trap_version
: String.Trap version. Value could be
V1
,V2C
orV3
. -trap_v3_user
: String.SNMPv3 user name. -
trap_mode
: String.Trap mode. Value could be
OID
,EventCode
orPreciseAlarm
. -trap_server_identity
: String.Host identifier. Value could be
BoardSN
,ProductAssetTag
orHostName
. -community_name
: String.Community name. -
alarm_severity
, String.Severity level of the alarm to be sent. Value could be
Critical
,Major
,Minor
orNormal
. -trap_server1_enabled
:true
orfalse
.Whether trap server 1 enabled. -
trap_server2_enabled
:true
orfalse
.Whether trap server 2 enabled. -
trap_server3_enabled
:true
orfalse
.Whether trap server 3 enabled. -
trap_server4_enabled
:true
orfalse
.Whether trap server 4 enabled. -
trap_server1_address
: String.Trap server 1 address. -
trap_server2_address
: String.Trap server 2 address. -
trap_server3_address
: String.Trap server 3 address. -
trap_server4_address
: String.Trap server 4 address. -
trap_server1_port
: Integer.Trap server 1 port. -
trap_server2_port
: Integer.Trap server 2 port. -
trap_server3_port
: Integer.Trap server 3 port. -
trap_server4_port
: Integer.Trap server 4 port.
Examples:
ibmc_snmp 'get' do
action :get
end
ibmc_sp
Manage SP service
Actions:
-
get
: Get SP service information.- Properties:
None
-
enable
: Enable SP start and restart system.- Properties:
None
-
upgrade
: Upgrade SP service.- Properties:
-
image_uri
: String. Required.
Path of the upgrade package on a remote server. (e.g., protocol://username:password@ip/directory/filename.) -
signature_uri
: String. Required.Path of the upgrade package digital signature on a remote server. (e.g., protocol://username:password@ip/directory/filename.) -
parameter
: String. Required.all
indicates the entire upgrade package or a specific upgrade package. -mode
: String. Required.Mode of the upgrade. Value could be
Auto
,Full
,Recover
,APP
orDriver
. -active_method
: String. Required.How does the upgrade take effect.
Examples:
ibmc_sp 'get' do
action :get
end
ibmc_sp `enable` do
action :enable
end
ibmc_user
Manage BMC user
Actions:
-
get
: Get BMC user.- Properties:
None
-
add
: Add BMC user.- Properties:
-
username
: String. Required.
BMC user name. -
password
: String. Required.BMC user password. -
role
: String. Required.BMC user role. Value could be
Administrator
,Operator
,Commonuser
,Noaccess
,CustomRole1
,CustomRole2
,CustomRole3
orCustomRole4
. -
delete
: Delete BMC user.- Properties:
-
username
: String. Required.
BMC user name.
-
set
: Set BMC user.- Properties:
-
username
: String. Required.
BMC user name. -
new_username
: String.BMC new user name. -
new_password
: String.BMC new user password. -
new_role
: String.BMC new user role. Value could be
Administrator
,Operator
,Commonuser
,Noaccess
,CustomRole1
,CustomRole2
,CustomRole3
orCustomRole4
. -locked
:true
orfalse
. Defaultfalse
.Whether the user is locked. -
enabled
:true
orfalse
Whether the user enabled.
Examples:
ibmc_user 'add user' do
username 'test'
password 'pass'
role 'Commonuser'
action :add
end
ibmc_user 'update user' do
username 'test'
new_username 'new_name'
action :set
end
ibmc_user 'delete user' do
username 'new_name'
action :delete
end
ibmc_vm
Manage virtual media
Actions:
-
connect
: Connect virtual media.- Properties:
-
image
: String. Required.
VRI of the virtual media image.
-
disconnect
: Disconnect virtual media.- Properties:
-
image
: String.
VRI of the virtual media image.
Examples:
ibmc_vmm 'connect' do
image 'VRI'
action :connect
end
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
chef-ibmc-cookbook CHANGELOG
This file is used to list changes made in each version of the chef-ibmc-cookbook cookbook.
Collaborator Number Metric
0.1.0 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.1.0 passed this metric
No Binaries Metric
0.1.0 failed this metric
Failure: Cookbook should not contain binaries. Found:
chef-ibmc-cookbook/files/default/uREST.tar.gz
Publish Metric
0.1.0 passed this metric
Supported Platforms Metric
0.1.0 passed this metric
Testing File Metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.1.0 failed this metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.1.0 passed this metric
No Binaries Metric
0.1.0 failed this metric
Failure: Cookbook should not contain binaries. Found:
chef-ibmc-cookbook/files/default/uREST.tar.gz
Publish Metric
0.1.0 passed this metric
Supported Platforms Metric
0.1.0 passed this metric
Testing File Metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.1.0 passed this metric
0.1.0 failed this metric
Failure: Cookbook should not contain binaries. Found:
chef-ibmc-cookbook/files/default/uREST.tar.gz
Publish Metric
0.1.0 passed this metric
Supported Platforms Metric
0.1.0 passed this metric
Testing File Metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.1.0 passed this metric
0.1.0 passed this metric
Testing File Metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.1.0 failed this metric
0.1.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number