In general, the BMC must be set up from within the OS unless you feel like going through the console on quite a few servers. Each manufacturer is of course different.
Dell is pretty good about using IPMItool for everything. The iDRAC 6 Express tends to flake out though. Script to set it up is below:
#!/bin/sh IPSRC_DEVICE=eth0 IPMITOOL_LAN="ipmitool lan set 1" IPMITOOL_USER="ipmitool user" PASSWORD="somepasshere" /sbin/service ipmi start bmcip=`/sbin/ifconfig $IPSRC_DEVICE | awk '/inet addr/ {print $2}' | sed s/addr:// | awk -F. '{print $1 "." $2 "." $3+16 "." $4}'` $IPMITOOL_LAN ipsrc static $IPMITOOL_LAN ipaddr $bmcip $IPMITOOL_LAN netmask 255.255.240.0 $IPMITOOL_LAN defgw ipaddr 10.128.16.100 $IPMITOOL_LAN access on $IPMITOOL_USER set password 2 $PASSWORD /sbin/service ipmi stop
HP's ILO is somewhat non-standard. You have to set parts of it up with hponcfg from their Scripting Toolkit for Linux. Hponcfg script:
#!/bin/bash export PATH=/sbin:/usr/sbin:$PATH export LD_LIBRARY_PATH=/home/mfenn/hp-psp/psp-8.70.rhel5.x86_64.en/hp-health-8.7.0.22-11.rhel5.x86_64/usr/lib:$LD_LIBRARY_PATH cd /home/mfenn/hp-sstools/ss-scripting-toolkit-linux-8.70/utilities ./hponcfg -f hponcfg-setshared.xml ./hponcfg -f hponcfg-setuser.xml
<!-- HPONCFG VERSION = "3.0" --> <!-- Device: iLO3 Firmware Version : 1.16 --> <RIBCL VERSION="2.0"> <LOGIN USER_LOGIN="admin" PASSWORD="password"> <RIB_INFO mode="write"><MOD_NETWORK_SETTINGS> <SHARED_NETWORK_PORT VALUE="Y"/> </MOD_NETWORK_SETTINGS></RIB_INFO> </LOGIN> </RIBCL>
<!-- HPONCFG VERSION = "3.0" --> <!-- Device: iLO3 Firmware Version : 1.16 --> <RIBCL VERSION="2.0"> <LOGIN USER_LOGIN="admin" PASSWORD="password"> <USER_INFO mode="write"> <DELETE_USER USER_LOGIN="Administrator"/> <ADD_USER USER_NAME="root" USER_LOGIN="root" PASSWORD="somepasshere"> <ADMIN_PRIV value="Y"/><REMOTE_CONS_PRIV value="Y"/> <RESET_SERVER_PRIV value="Y"/> <VIRTUAL_MEDIA_PRIV value="Y"/> <CONFIG_ILO_PRIV value="Y"/> </ADD_USER> </USER_INFO> </LOGIN> </RIBCL>
The rest is ipmitool as normal. The ILO seems to not like issuing command too quickly, hence the sleeps:
#!/bin/sh IPMITOOL_LAN="ipmitool lan set 2" /sbin/service ipmi start bmcip=`/sbin/ifconfig eth0 | awk '/inet addr/ {print $2}' | sed s/addr:// | awk -F. '{print $1 "." $2 "." $3+16 "." $4}'` $IPMITOOL_LAN ipsrc static sleep 60 $IPMITOOL_LAN ipaddr $bmcip sleep 60 $IPMITOOL_LAN netmask 255.255.240.0 sleep 60 $IPMITOOL_LAN defgw ipaddr 10.128.16.100 sleep 60
IBM can be standard or nonstandard depending on the server.
Easy, standard IPMItool:
#!/bin/sh IPMITOOL_LAN="ipmitool lan set 1" IPMITOOL_USER="ipmitool user" PASSWORD="somepasshere" /sbin/service ipmi start bmcip=`/sbin/ifconfig eth0 | awk '/inet addr/ {print $2}' | sed s/addr:// | awk -F. '{print $1 "." $2 "." $3+16 "." $4}'` $IPMITOOL_LAN ipsrc static $IPMITOOL_LAN ipaddr $bmcip $IPMITOOL_LAN netmask 255.255.240.0 $IPMITOOL_LAN defgw ipaddr 10.128.16.100 $IPMITOOL_LAN access on $IPMITOOL_USER set name 2 root $IPMITOOL_USER set password 2 $PASSWORD /sbin/service ipmi stop
Uses IPMItool, but requires some magic.
#!/bin/sh # based on http://www-947.ibm.com/support/entry/portal/docdisplay?brand=5000008&lndocid=MIGR-5078398 IPMITOOL_LAN="ipmitool lan set 1" IPMITOOL_USER="ipmitool user" IPMITOOL_RAW="ipmitool raw" IPMITOOL_CHANNEL="ipmitool channel" PASSWORD="somepasshere" /sbin/service ipmi start $IPMITOOL_RAW 0x30 0x13 0xff 0x0 0x0 0x0 $IPMITOOL_LAN ipsrc static $IPMITOOL_USER disable 1 $IPMITOOL_USER disable 3 $IPMITOOL_USER disable 4 $IPMITOOL_USER enable 2 $IPMITOOL_USER priv 2 4 1 $IPMITOOL_CHANNEL setaccess 1 2 callin=on ipmi=on link=off privilege=4 $IPMITOOL_USER set name 2 root $IPMITOOL_USER set password 2 $PASSWORD $IPMITOOL_USER list 1 $IPMITOOL_RAW 0x6 0x40 0x1 0x42 0x44 $IPMITOOL_RAW 0x6 0x40 0x1 0x82 0x84 $IPMITOOL_LAN arp respond on $IPMITOOL_LAN auth admin md5 $IPMITOOL_LAN cipher_privs uaaaXXXXXXXXXXX bmcip=`/sbin/ifconfig eth0 | awk '/inet addr/ {print $2}' | sed s/addr:// | awk -F. '{print $1 "." $2 "." $3+16 "." $4}'` $IPMITOOL_LAN ipaddr $bmcip $IPMITOOL_LAN netmask 255.255.240.0 $IPMITOOL_LAN defgw ipaddr 10.128.16.100 /sbin/service ipmi stop