def refreshHost(host): print "Starting refresh " + host + " at "+time.strftime("%H:%M:%S", time.gmtime()) if MarkLogicEC2Config.isWindows(): MarkLogicEC2Lib.sys("Reinstalling for "+host,"powershell -file " + reinstallFileName(host)) elif MarkLogicEC2Config.isRedHat(): refreshRedHatHost(host) print "Finishing refresh " + host + " at "+time.strftime("%H:%M:%S", time.gmtime())
def setupHost(host): print "Setting up "+host if MarkLogicEC2Config.isWindows(): setupWindowsHost(host) MarkLogicEC2Lib.sys("Setting up "+host,"powershell -file pws\server-setup.ps1") elif MarkLogicEC2Config.isRedHat(): setupRedHatHost(host)
def startInstance(host): if(not(isRunning(host))): print "Starting thaw of " + host + " at "+time.strftime("%H:%M:%S", time.gmtime()) ec2.start_instances(host) waitForRunningState(host) if(MarkLogicEC2Config.USE_ELASTIC_IP): getElasticIP(host).associate(host) print "Elastic IP added for host " + host + " - " + str(getElasticIP(host)) waitForReachableState(host) if MarkLogicEC2Config.isRedHat(): MarkLogicEC2Lib.sys("Check device mapping ...",sshToBoxString(getInstance(host).dns_name) + "'" + lnCommand()+ "'") createSSHLink(host) if MarkLogicEC2Config.isWindows(): createRDPLink(host) createSessionLink(host) createReinstallScript(host) createAdminConsoleLink(host) print "Host " + host + " started at "+time.strftime("%H:%M:%S", time.gmtime()) else: print "Host " + host + " already running"
def createHost(): cmd="" print "Starting create host at "+time.strftime("%H:%M:%S", time.gmtime()) if MarkLogicEC2Config.isWindows(): cmd = '<powershell>Enable-PSRemoting -Force</powershell>' reservation = ec2.run_instances(image_id=MarkLogicEC2Config.getImageID(),instance_type=MarkLogicEC2Config.INSTANCE_SIZE,key_name=MarkLogicEC2Config.EC2_KEY_PAIR_NAME,security_groups=[MarkLogicEC2Config.EC2_SECURITY_GROUP_NAME],user_data=cmd) instance = reservation.instances[0] print "Created instance "+ instance.id waitForRunningState(str(instance.id)) f = open(MarkLogicEC2Config.HOST_FILE,"a") f.write(instance.id+"\n") f.close() if(MarkLogicEC2Config.USE_ELASTIC_IP): allocateIP(instance.id) print "Elastic IP added for host " + instance.id + " - " + getHostIP(instance.id) waitForReachableState(str(instance.id)) if MarkLogicEC2Config.isRedHat(): createSSHLink(str(instance.id)) volume = ec2.create_volume(MarkLogicEC2Config.DISK_CAPACITY,instance.placement,"") while volume.status != 'available': print "Volume status is "+volume.status time.sleep(5) volume = ec2.get_all_volumes([str(volume.id)])[0] volume.attach(instance.id,MarkLogicEC2Config.EBS_DEVICE_NAME) print MarkLogicEC2Config.DISK_CAPACITY + "G disk volume created" print "Volume status is "+volume.status print "Finishing create host at "+time.strftime("%H:%M:%S", time.gmtime())
""" Generic MarkLogic install and configuration script author: Alex Bleasdale <*****@*****.**> updated: Ken Tune <*****@*****.**> version: 0.2 """ ADMIN_ROOT = MARKLOGIC_ROOT + "Admin\\" WINDOWS_INSTALL_MODE= " /passive /quiet" INSTALL_CMD="" START_CMD="" STOP_CMD="" if MarkLogicEC2Config.isWindows(): INSTALL_CMD = INSTALL_DIR + MARKLOGIC_EXE + WINDOWS_INSTALL_MODE START_CMD = "net start MarkLogic" STOP_CMD = "net stop MarkLogic" ADMIN_ROOT = MARKLOGIC_ROOT + "Admin\\" COPY_CMD = "copy /Y *.xqy \""+ADMIN_ROOT+"\"" elif MarkLogicEC2Config.isRedHat(): INSTALL_CMD = "cd " + INSTALL_DIR +"; yum -y install "+ MARKLOGIC_EXE START_CMD = "/etc/init.d/MarkLogic start" STOP_CMD = "/etc/init.d/MarkLogic stop" ADMIN_ROOT = MARKLOGIC_ROOT + "Admin/" COPY_CMD = "cp *.xqy "+ADMIN_ROOT LOCALHOST = "localhost"
setupHost(host) cluster() elif(mode == RESTART_MODE): if(len(sys.argv) > 2): host = getHostForRequest(sys.argv[2]) restartHost(host) else: for host in getAvailableHosts(): restartHost(host) elif(mode == DEVICES_MODE): if(len(sys.argv) > 2): host = getHostForRequest(sys.argv[2]) MarkLogicEC2Lib.sys("Check device mapping ...",sshToBoxString(getInstance(host).dns_name) + "'" + lnCommand()+ "'") else: for host in getAvailableHosts(): MarkLogicEC2Lib.sys("Check device mapping ...",sshToBoxString(getInstance(host).dns_name) + "'" + lnCommand()+ "'") elif(mode == REMOTE_MODE): if(len(sys.argv) > 2): dns_name = getInstance(getHostForRequest(sys.argv[2])).dns_name if MarkLogicEC2Config.isRedHat(): MarkLogicEC2Lib.sys("Logging into box "+dns_name,sshToBoxString(dns_name)) elif MarkLogicEC2Config.isWindows(): MarkLogicEC2Lib.sys("Logging into box "+dns_name,"powershell -noexit -file sessions\\"+ dns_name + ".session.ps1") else: print "You must supply an index or an instance id" else: print mode +" is not a permitted mode"