mirror of
https://github.com/SunnyQjm/NDNDeployment.git
synced 2026-06-03 08:16:47 +08:00
186 lines
6.1 KiB
Bash
Executable File
186 lines
6.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
command=$1
|
|
ASYNC=$2
|
|
args=$3
|
|
DEBUG=0
|
|
COUNT=0
|
|
|
|
if [[ ! -n "$ASYNC" ]]; then
|
|
ASYNC=0
|
|
fi
|
|
|
|
# 读取网络拓扑配置
|
|
json=`cat lab_topology.json`
|
|
|
|
# 保存配置列表
|
|
list=`echo ${json} | jq '.'`
|
|
|
|
# 获取网络拓扑的节点个数
|
|
length=`echo ${json} | jq '.|length'`
|
|
length=$(( $length - 1 ))
|
|
|
|
##########################################
|
|
### 确保一个文件夹存在,不存在则创建
|
|
### @param dir
|
|
##########################################
|
|
function ensureDir() {
|
|
dir=$1
|
|
if [[ ! -d "$dir" ]]; then
|
|
echo "文件夹${dir}不存在,正在创建"
|
|
mkdir -p ${dir}
|
|
fi
|
|
}
|
|
|
|
# 创建temp文件夹存放中转数据
|
|
ensureDir ./temp
|
|
|
|
# TEMP_DIR=./temp
|
|
|
|
##########################################
|
|
### 具体执行部署到一个节点的操作
|
|
### @param routerName 路由节点的完整名字
|
|
### @param network
|
|
### @param site
|
|
### @param router
|
|
### @param mapPort
|
|
### @param ip
|
|
### @param username
|
|
### @param password
|
|
### @param nics
|
|
### @param nbs
|
|
###########################################
|
|
function deal(){
|
|
index=$1
|
|
|
|
routerName=$(echo ${list} | jq -r ".[$index].name")
|
|
network=$(echo ${list} | jq -r ".[$index].network")
|
|
site=$(echo ${list} | jq -r ".[$index].site")
|
|
router=$(echo ${list} | jq -r ".[$index].router")
|
|
mapPort=$(echo ${list} | jq -r ".[$index].mapPort")
|
|
ip=$(echo ${list} | jq -r ".[$index].ip")
|
|
username=$(echo ${list} | jq -r ".[$index].username")
|
|
password=$(echo ${list} | jq -r ".[$index].password")
|
|
sshArgs=$(echo ${list} | jq -r ".[$index].args")
|
|
|
|
nics=$(echo ${list} | jq ".[$index].nics")
|
|
nbs=$(echo ${list} | jq ".[$index].nbs")
|
|
#deal $routerName $network $site $router $mapPort $ip $username $password $nics $nbs &
|
|
|
|
echo "=======================开始处理$routerName==============="
|
|
if [[ ${DEBUG} -eq 1 ]]; then
|
|
echo
|
|
echo routerName: ${routerName}
|
|
echo network: ${network}
|
|
echo site: ${site}
|
|
echo router: ${router}
|
|
echo mapPort: ${mapPort}
|
|
echo ip: ${ip}
|
|
echo username: ${username}
|
|
echo password: ${password}
|
|
echo nics:
|
|
echo ${nics} | jq '.'
|
|
echo nbs:
|
|
echo ${nbs} | jq '.'
|
|
echo
|
|
fi
|
|
|
|
# transName=$(echo ${routerName//\//.})
|
|
# transName=$(echo ${transName#.})
|
|
# echo $nics | jq '.' >> $TEMP_DIR/$transName.nics
|
|
# echo $nbs | jq '.' >> $TEMP_DIR/$transName.nbs
|
|
|
|
case ${command} in
|
|
"prepare")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_prepare.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_prepare.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"update")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_update.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_update.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"upgrade")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_upgrade.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${args} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_upgrade.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${args} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"clone")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_clone.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_clone.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"ifconfig")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_ifconfig.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_ifconfig.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"nfd")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_nfd.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_nfd.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"nlsr")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_nlsr.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${network} ${site} ${router} "${sshArgs}" &
|
|
sleep 0.5
|
|
else
|
|
./_eval_deploy_nlsr.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${network} ${site} ${router} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"nlsrc")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_nlsrc.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${args} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_nlsrc.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${args} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"nfdc")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_nfdc.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${args} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_nfdc.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${args} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"branch")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_change_branch.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${args} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_change_branch.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} ${args} "${sshArgs}"
|
|
fi
|
|
;;
|
|
"stop")
|
|
if [[ ${ASYNC} -eq 1 ]]; then
|
|
./_eval_deploy_stop.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}" &
|
|
else
|
|
./_eval_deploy_stop.sh ${username} ${password} ${ip} ${routerName} ${mapPort} ${index} "${sshArgs}"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
echo "===========================${routerName} finish============================"
|
|
}
|
|
|
|
|
|
|
|
for index in `seq 0 ${length}`
|
|
do
|
|
# 获取到路由的名字
|
|
echo
|
|
deal ${index}
|
|
echo
|
|
done
|