当前位置: 首页 > article >正文

Linux服务器自动化批量安装IB网卡驱动

Readme

脚本功能:

  • 自动化批量安装IB网卡驱动

使用方法:

  • 将该脚本上传至linux服务器内
  • 将驱动包上传至与脚本同一级目录下
  • 在脚本同一级目录下创建nodelist文件,写入待安装节点的带内管理IP,每行一个;
  • 脚本赋执行权限

测试环境:

  • CentOS7.9/Rocky8.6

注意事项:

  • 不同的系统安装命令略有不同,请按照脚本中的注释,根据实际情况进行修改

Script

#!/bin/bash
current_dir="/root"
node_list="${current_dir}/nodelist"    #待安装节点管理IP    
driver_name="MLNX_OFED_LINUX-xxx-xxx-x86_64.zip"    #驱动包名称,根据实际修改
install_dir="${current_dir}/MLNX_OFED_LINUX-xxx-xxx-x86_64"    #解压后的路径,根据实际修改

readarray -t ip_address < ${node_list}
count=${#ip_address[@]}

#不同OS安装命令可能不同,根据实际修改,以下以CentOS7.9为例

cat > ${current_dir}/install.sh << EOF 
#install deps
yum install -y tk gcc-gfortran tcl make tcsh fuse-libs perl libusbx pciutils lsof

cd ${install_dir}
./mlnxofedinstall --force
/etc/init.d/openibd restart
/etc/init.d/opensmd restart
sleep 5
reboot
EOF


#准备工作;有共享目录该步骤无需执行
for ((i=0; i<$count; i++))
do 

######
echo  "Start copying to ${ip_address[$i]}"
scp ${current_dir}/install.sh root@${ip_address[$i]}:${current_dir}/					    
scp ${current_dir}/${driver_name} root@${ip_address[$i]}:${current_dir}/

ssh -n ${ip_address[$i]} "

echo  "Start to unzip on ${ip_address[$i]}"  
cd ${current_dir}/
# 检查文件是否存在
if [ -f "MLNX_OFED_LINUX-xxx-xxx-x86_64.zip" ]; then
    
    echo "文件存在,开始解压"
    unzip MLNX_OFED_LINUX-xxx-x86_64.zip  >/dev/null 2>&1
else
 
    echo "文件不存在,请重新拷贝"
fi
"

done 

#安装循环,宏观上并行安装
for ((i=0; i<$count; i++))
do
####
ssh -n ${ip_address[$i]} "

echo "Start to install ib driver  on ${ip_address[$i]}"
cd ${current_dir}/

# 检查mlnxofedinstall文件是否存在
if [ -f "mlnxofedinstall" ]; then
    
    echo "文件存在,执行操作"
    nohup bash install.sh > install.log  &
	
else
 
    echo "文件不存在,请检查"
fi

exit 

"
done 

echo "Please wait for about 30 minutes"
#设置等待30分,根据实际修改
sleep 1800;

#安装后检查
echo "Start checking installation status"

flag=1
for ((i=0; i<$count; i++))
do 

######
ssh -n ${ip_address[$i]} "
if lsmod | grep -q rdma; then
    echo "${ip_address[$i]} yes"
	flag++
else
    echo "${ip_address[$i]} no"
fi
"
done 

#检测所有节点安装成功
if [ flag -eq ${count} ];then
   echo "Installation successful!"
else
   echo "please check"
fi

echo "Installation completed"

每天进步一点点


http://www.kler.cn/a/369280.html

相关文章:

  • 玩转PyCharm:常用操作和快捷键
  • 2-解决联想拯救者Y7000p在ubuntu20.04未找到wifi适配器,安装rtl8852ce网卡驱动问题
  • 世优科技“AI+空间计算”推动消费行业向智能化升级
  • 探秘 Feign 核心注解:@FeignClient 和 @EnableFeignClients 是如何打通微服务通信的 “任督二脉” 的?
  • 分库分表常见面试问题
  • 华为原生鸿蒙操作系统:我国移动操作系统的新篇章
  • Git - 如何删除 push 过一次的文件链路追踪?
  • autMan奥特曼机器人-实时翻译的用法
  • 常用 SQL 语句的大全
  • Mybatis高级
  • Android13、14特殊权限-应用安装权限适配
  • Django-中间件(切面编程AOP)
  • 设计模式(二)
  • cjson内存泄漏问题注意事项
  • 股市投资有哪些实用心得?
  • Spring + SSE
  • C++学习路线(二十五)
  • 【MyBatis面试题】
  • GPU 与 GPU 服务器:科技璀璨之星,开启无限未来
  • 3分钟彻底搞懂Web UI自动化测试之【POM设计模式】
  • 雷池社区版中升级雷池遇到问题
  • 开发维护初学者指南——软件维护
  • 计算机网络:数据链路层 —— 无线局域网 WLAN
  • Android——convertView
  • Thinkphp-Laravel大学生心理健康管理系统的设计与实现zw779
  • vscode 插件推荐安装