【昇腾】Ascend Snt9B多机批量执行命令方案

举报
modelarts-dev-server 发表于 2023/11/17 11:24:22 2023/11/17
【摘要】 1. 背景介绍在使用华为云裸金属服务器Ascend Snt9B机器进行多机训练/推理作业时,往往需要将多机的环境配置的完全一致。如果逐台登录主机,逐台使用环境配置脚本来配置,虽然可以完成任务,但是效率低下。为提高效率,可以在单节点通过脚本实现多台主机批量执行命令,具体步骤如下所示。2. 多机批量执行方案2.1 选择信任节点并生成密钥可以将多机中的一台作为信任节点,通过如下命令生成ssh的rs...

1. 背景介绍

在使用华为云裸金属服务器Ascend Snt9B机器进行多机训练/推理作业时,往往需要将多机的环境配置的完全一致。如果逐台登录主机,逐台使用环境配置脚本来配置,虽然可以完成任务,但是效率低下。为提高效率,可以在单节点通过脚本实现多台主机批量执行命令,具体步骤如下所示。

2. 多机批量执行方案

2.1 选择信任节点并生成密钥

可以将多机中的一台作为信任节点,通过如下命令生成ssh的rsa密钥:

ssh-keygen -t rsa

执行后,会在/.ssh目录生成ssh的公钥和私钥。

2.2 配置信任节点对其他多机的免密登录

配置该信任节点免密登录到所有主机。

首先创建主机列表文件hostlist,将所有主机的vpc ip写在文件中。

本文以两台华为云Snt9B裸金属服务器为例,将server1作为信任节点,它们的vpc ip分别为:
172.16.0.73 server1
172.16.0.186 server2

执行如下命令:

$ vim hostlist
172.16.0.73
172.16.0.186

在与信任节点hostlist文件相同的目录下,编写免密登录脚本,本文将其命名为config-ssh.sh:

#!/bin/sh

hosts=`sed -n '/^[^#]/p' hostlist`
for host in $hosts
        do
                echo ""
                echo HOST $host
                scp .ssh/id_rsa.pub $host:~/
                ssh $host 'cat id_rsa.pub >> .ssh/authorized_keys'
        done

给予权限并执行该脚本:

chmod u+x config-ssh.sh

./config-ssh.sh

在执行时,会需要在信任节点输入其他节点的ssh密码,来将信任节点的rsa公钥发给其他节点,并写入authorized_keys文件。如下图,需要输入server1和server2的密码。

这样就使得信任节点可以免密登录到所有主机了。

2.3 在信任节点实现多机批量处理

在信任节点创建批量执行脚本,本文将其命名为doCommand.sh:

#!/bin/sh

doCommand()
{
    hosts=`sed -n '/^[^#]/p' hostlist`
    for host in $hosts
        do
            echo ""
            echo HOST $host
            scp "$@" $host:~/
            ssh $host sh ./"$@"
        done
    return 0
}

    if [ $# -lt 1 ]
    then
            echo "$0 cmd"
            exit
    fi
    doCommand "$@"
    echo "return from doCommand"

 该脚本执行时需要一个参数,即需要被多机批量执行的脚本。本文创建了runnn.sh脚本,具体内容如下:

#!/bin/sh

echo "hello world!!!"

给予权限并执行doCommand.sh:

chmod u+x doCommand.sh

./doCommand.sh "runnn.sh"

该命令的意思是:在hostlist文件中的每台机器分别执行runnn.sh脚本。效果如下:

可以将环境配置的脚本放在信任节点上,并将其作为doCommand.sh执行时的参数。

./doCommand.sh "环境配置脚本"

这样就实现了在单机上,对多机批量执行环境配置脚本了。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。