linux系统下ipmitool添加BMC帐号密码

需求:已知BMC帐号id2为root管理员帐号,添加id5bmc帐号

工具:ipmitool version 1.8.14

系统:CentOS release 6.6 (Final)

1,通过yum安装ipmitool安装源

[root@zxl]# yum install ipmitool

2,手动安装ipmitool

rpm -ivh OpenIPMI-tools-2.0.16-11.el5.x86_64.rpm
/sbin/modprobe ipmi_msghandler /sbin/modprobe ipmi_devintf /sbin/modprobe ipmi_poweroff /sbin/modprobe ipmi_watchdog /sbin/modprobe ipmi_si

3,新建ip.csv文件,将BMC的userid(第一列),username(第二列),userpassword(第三列),用户名权限(第四列)

user_id,user_name,user_password,user_priv
2,root,123456,2
3,yewu,1234567,3
5,bmc,12345678,4

4,编辑ipmitool_adduser_inband.sh

#!/bin/bash

#版本和编辑日期
VERSION=1.0.0
MODIFY_DATE=20170830

#帮助信息函数
function printHelp()
{
    echo "Tool Version:$VERSION($MODIFY_DATE)"
    echo "Usage:$0 -i user_conf_File"
}

#如果脚本执行时加上-h参数,则打印帮助信息
case $1 in
            -h|--help)
            printHelp
            exit 0
                ;;
    esac

#获取执行脚本时的-i选项参数,把参数赋给user_conf_FILE
#若脚本的选项参数不是-i,则直接退出
while getopts ":i:" opt
do
    case $opt in
        i)
USER_CONF_FILE=$OPTARG
            echo "user config file is "$USER_CONF_FILE
            ;;
        *) 
            echo "argument error"
            exit 1;;
    esac
done

#判断有没有给USER_CONF赋值,没有则直接退出
if [ ${#USER_CONF_FILE} -eq 0 ]
then
    echo "please assign config file. detail info check -h"
    exit 0
fi

#脚本把日志输出到add_user_result.log文件
LOG_FILE="add_user_result.log"

declare -i i=0

#循环读取文件
for LINE in `cat $USER_CONF_FILE`;
do
{

    ((i=i+1))
    
    if [ $i -eq 1 ]
    then
        continue
    fi

    #简单的判断某行的有效性,如果读取到某行的长度小于10,则直接退出
    if [ ${#LINE} -lt 10 ]
    then
        exit 0;
    fi
    
    #把变量清空,给变量赋值
    USER_ID=""
    USER_NAME=""
    USER_PASSWD=""
    USER_PRIV=""
    
    USER_ID=`echo $LINE | awk -F, '{print $1}'`
    USER_NAME=`echo $LINE | awk -F, '{print $2}'`
    USER_PASSWD=`echo $LINE  | awk -F, '{print $3}'`
    USER_PRIV=`echo $LINE | awk -F, '{print $4}' | sed 's/
//g'`
        
#    echo "user password $USER_PASSWD"
    #判断从文件中读取到的数据是否是空,若是,则直接退出,脚本停止运行
    if [ ${#USER_ID} -eq 0 ] || [ ${#USER_NAME} -eq 0 ] || [ ${#USER_PASSWD} -eq 0 ] || 
       [ ${#USER_PRIV} -eq 0 ]
    then
        echo "please check data valid of file $USER_CONF_FILE file "
        exit 0
    fi
    
    #增加用户名,密码并设置对应权限
    ipmitool user set name $USER_ID $USER_NAME
    ipmitool user set password $USER_ID $USER_PASSWD
    ipmitool user priv $USER_ID $USER_PRIV 1
    ipmitool user priv $USER_ID $USER_PRIV 8
    ipmitool channel setaccess 1 $USER_ID callin=on ipmi=on link=on privilege=$USER_PRIV 
    ipmitool channel setaccess 8 $USER_ID callin=on ipmi=on link=on privilege=$USER_PRIV 
    ipmitool user enable $USER_ID
    
}
done

echo "ipmitool user list 1" | tee -a $LOG_FILE
ipmitool user list 1 | tee -a $LOG_FILE
echo "ipmitool user list 8" | tee -a $LOG_FILE
ipmitool user list 8

echo "add all user name success" | tee -a $LOG_FILE

5,执行ipmitool_adduser_inband.sh -i ip.csv

[root@zxl]# ./ipmitool_adduser_inband.sh -i ip.csv 
user config file is ip.csv

6,查看执行后的结果

[root@zxl]# ipmitool user list 1
ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
2   root           true    true       true       USER
3   yewu            true    true       true       OPERATOR
5   bmc          true    true       true       ADMINISTRATOR
原文地址:https://www.cnblogs.com/zhangxinglong/p/7459585.html