版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/u/c801d8028b0c
由于生产上大数据集群时常会扩容,而每次扩容完成后需要对新扩容的主机进行机架分配,涉及主机数量比较多时,通过手工分配耗时较长,因此编写如下脚本进行机架分配。
第一部分:获取集群主机ID/IP地址/机架号
#其中的v18根据http://IP:7180/api/version来查看
curl -u '用户名:密码' 'http://IP:7180/api/v18/hosts'|python -c'
import json;
import sys;
obj=json.load(sys.stdin);
for x in obj["items"]:
print x["hostId"],x["ipAddress"],x["rackId"]
'> rack.out
二、vi编辑rack.out文件,将主机的rack号调整为希望配置的rack号,并将多余的主机信息删除
例如,rack.out的输出为:
658278db-09f0-4173-8457-1a20bf7b420c IP /default
改为期望值:
658278db-09f0-4173-8457-1a20bf7b420c IP /rack7
三、根据主机ID修改机架号
while read hostId ipAddress rackId
do
echo $hostId $ipAddress $rackId
curl -X PUT -u '用户名:密码' --header 'Content-Type: application/json' --header 'Accept: application/json' -d \
"{
\"rackId\":\"${rackId}\"
}" http://IP/api/v18/hosts/${hostId}
done < rack.out