tmpfile.write("".join([ " -{0}\n".format([6700 + i for i in range(len(hosts))]) ])) # add commands to queue cmd_str.append("scp -i {0} {1} ubuntu@{2}:storm.yaml".format( keyfile, tmpfile.name, h)) cmd_str.append( "ssh -i {0} ubuntu@{1} sudo mv storm.yaml /usr/local/storm/conf/storm.yaml" .format(keyfile, h)) if h == hosts[0]: # start nimbus cmd_str.append("ssh -i {0} ubuntu@{1} \"{2}\"".format( keyfile, h, quiet_wrap("sudo /usr/local/storm/bin/storm nimbus"))) # web ui cmd_str.append("ssh -i {0} ubuntu@{1} \"{2}\"".format( keyfile, h, quiet_wrap("sudo /usr/local/storm/bin/storm ui"))) else: cmd_str.append("ssh -i {0} ubuntu@{1} \"{2}\"".format( keyfile, h, quiet_wrap("sudo /usr/local/storm/bin/storm supervisor"))) # execute the remote commands for cmd in cmd_str: print(cmd) res = os.system(cmd) if res != 0: raise (RuntimeError( "Something went wrong executing {0} Got exit: {1}".format(
# supervisor info # supervisor.slots.ports: # - 6700 # - 6701 # etc.. tmpfile.write("supervisor.slots.ports:\n") tmpfile.write("".join([" -{0}\n".format([6700 + i for i in range(len(hosts))])])) # add commands to queue cmd_str.append("scp -i {0} {1} ubuntu@{2}:storm.yaml".format(keyfile, tmpfile.name, h)) cmd_str.append("ssh -i {0} ubuntu@{1} sudo mv storm.yaml /usr/local/storm/conf/storm.yaml".format(keyfile, h)) if h==hosts[0]: # start nimbus cmd_str.append("ssh -i {0} ubuntu@{1} \"{2}\"".format(keyfile, h, quiet_wrap("sudo /usr/local/storm/bin/storm nimbus"))) # web ui cmd_str.append("ssh -i {0} ubuntu@{1} \"{2}\"".format(keyfile, h, quiet_wrap("sudo /usr/local/storm/bin/storm ui"))) else: cmd_str.append("ssh -i {0} ubuntu@{1} \"{2}\"".format(keyfile, h, quiet_wrap("sudo /usr/local/storm/bin/storm supervisor"))) # execute the remote commands for cmd in cmd_str: print(cmd) res=os.system(cmd) if res!=0: raise(RuntimeError("Something went wrong executing {0} Got exit: {1}".format(cmd, res))) # print some info # TODO: retag master and open its 8080 port. print("Master: {0}".format(hosts[0]))
if len(hosts) != len(private_ips): raise (RuntimeError("Host and private ips not consistent!")) if len(hosts) == 0: raise (RuntimeError("No hosts found.")) ####################################################################### # flask ####################################################################### cmd_str = [] for h in hosts: print("Starting flask configuration...") cmd_str.append("(cd ../../src/ && tar -zcvf frontend.tmp.tar.gz frontend)") cmd_str.append("(cd ../../src/ && scp -i {0} frontend.tmp.tar.gz ubuntu@{1}:)".format(keyfile, h)) cmd_str.append("(cd ../../src/ && rm frontend.tmp.tar.gz)") cmd_str.append("ssh -i {0} ubuntu@{1} tar xvf frontend.tmp.tar.gz".format(keyfile, h)) # launch webapp cmd_str.append('ssh -i {0} ubuntu@{1} "{2}"'.format(keyfile, h, quiet_wrap("sudo ./frontend/run.py"))) # execute the remote commands for cmd in cmd_str: print(cmd) res = os.system(cmd) if res != 0: raise (RuntimeError("Something went wrong executing {0} Got exit: {1}".format(cmd, res))) for a in public_dns: print("Straw Frontend:\thttp://{0}:5000".format(a))
if len(hosts) != len(private_ips): raise(RuntimeError("Host and private ips not consistent!")) if len(hosts) == 0: raise(RuntimeError("No hosts found.")) ####################################################################### # flask ####################################################################### cmd_str = [] for h in hosts: print("Starting flask configuration...") cmd_str.append("(cd ../../src/ && tar -zcvf frontend.tmp.tar.gz frontend)") cmd_str.append("(cd ../../src/ && scp -i {0} frontend.tmp.tar.gz ubuntu@{1}:)".format(keyfile, h)) cmd_str.append("(cd ../../src/ && rm frontend.tmp.tar.gz)") cmd_str.append("ssh -i {0} ubuntu@{1} tar xvf frontend.tmp.tar.gz".format(keyfile, h)) # launch webapp cmd_str.append("ssh -i {0} ubuntu@{1} \"{2}\"".format(keyfile, h, quiet_wrap("sudo ./frontend/run.py"))) # execute the remote commands for cmd in cmd_str: print(cmd) res=os.system(cmd) if res!=0: raise(RuntimeError("Something went wrong executing {0} Got exit: {1}".format(cmd, res))) for a in public_dns: print("Straw Frontend:\thttp://{0}:5000".format(a))