哎,幻想着使用脚本自动化部署docker容器云集群,借助上次输入命令行搭建容器云,写好逻辑脚本,结果只是Bat批处理调用j函数、执行脚本、使用putty远程更新yum源,就高了半天,好不顺当,悲催
简单总结一下今天的学习
1,学会了利用bat文件,调用黑窗口,并执行js文件
2,将web前端用到的js操作用到了shell脚本中,熟悉了json数据配合shell脚本的数据动态交互
3,学会了一个小技巧:创建一个模板文件,利用Scripting.FileSystemObject,动态的创建适应不同数据要求的shell脚本文件,代码如下
function common_init_MsaterSalve(){ WScript.Echo("444"); var ss = hostnames[0].hostname; var hostname = ss.split(" "); for(var i =0;i<hostname.length;i++){ //文件替换 var ForReading = 1, ForWriting = 2; var fso = new ActiveXObject("Scripting.FileSystemObject"); var template = fso.OpenTextFile("common_init_MsaterSalve.sh", ForReading); var tmp = fso.OpenTextFile("common_init_MsaterSalve.tmp"+i+".sh", ForWriting, true); var contentTemplate = template.ReadAll(); tmp.Write(contentTemplate.replace(/hostname=\sregistryHostname=\sapiserverHostname=\setcdHostname=/g,"hostname="+hostname[i]+"\n"+"registryHostname="+machineName[0].registryHostname+"\n"+"apiserverHostname="+machineName[0].apiserverHostname+"\n"+"etcdHostname="+machineName[0].etcdHostname+"\n")); template.Close(); tmp .Close(); //将替换的文件通过putty进行远程执行 var shell = WScript.CreateObject("WScript.Shell"); //默认root用户权限直接启动 shell.run("putty -m common_init_MsaterSalve.tmp"+i+".sh -pw " +pwd+ " root@" +machines[i].IP, 1, true); //WScript.Echo("445554"+machines[i].IP); } }4,根据一步一个命令操作搭建容器云集群步骤来分析、简化、理解,进而编写shell脚本,让自己对容器云搭建各个组件之间的关系有了更深一步的理解。5,尴尬的一天,明天加油!
