def module_deploy(request): """ deploy (nginx/php/mysql..etc) module """ ret = [] jid = [] user = request.user if request.method == 'POST': action = request.get_full_path().split('=')[1] if action == 'deploy': tgt = request.POST.get('tgt') arg = request.POST.getlist('module') tgtcheck = HostList.objects.filter(hostname=tgt) if tgtcheck: Message.objects.create(type='salt', action='deploy', action_ip=tgt, content='saltstack %s module depoy' % (arg)) sapi = SaltAPI(url=settings.SALT_API['url'], username=settings.SALT_API['user'], password=settings.SALT_API['password']) db = db_operate() if 'sysinit' in arg: obj = sapi.async_deploy( tgt, arg[-1]) # 先执行初始化模块,其他任意 sysinit 在最后的模块 sql = "insert INTO salt_returns VALUES(%s) " % obj print sql jid.append(obj) arg.remove('sysinit') if arg: for i in arg: obj = sapi.async_deploy(tgt, i) jid.append(obj) else: for i in arg: obj = sapi.async_deploy(tgt, i) sql = "insert INTO salt_returns VALUES(%s) " % obj db.mysql_command(settings.OMS_MYSQL, sql) jid.append(obj) msg = '%s deploy %s module success,jid is %s' % (tgt, i, obj) ret.append(msg) # db = db_operate() # for i in jid: # # time.sleep(10) # sql = 'select returns from salt_returns where returns=%s' # result=db.select_table(settings.OMS_MYSQL,sql,str(i)) #通过jid获取执行结果 # print result # ret.extend(result) # sapi.async_deploy('test-01','zabbix.api') #调用zabbix.api执行模块监控 else: ret = '亲,目标主机不对,请重新输入' return render(request, 'salt_module_deploy.html', {'ret': ret})
def module_deploy(request): """ deploy (nginx/php/mysql..etc) module """ ret = [] jid = [] user = request.user if request.method == 'POST': action = request.get_full_path().split('=')[1] if action == 'deploy': tgt = request.POST.get('tgt') arg = request.POST.getlist('module') tgtcheck = HostList.objects.filter(hostname=tgt) if tgtcheck: Message.objects.create(type='salt', action='deploy', action_ip=tgt, content='saltstack %s module depoy' % (arg)) sapi = SaltAPI(url=settings.SALT_API['url'], username=settings.SALT_API['user'], password=settings.SALT_API['password']) db = db_operate() if 'sysinit' in arg: obj = sapi.async_deploy(tgt, arg[-1]) # 先执行初始化模块,其他任意 sysinit 在最后的模块 sql = "insert INTO salt_returns VALUES(%s) " % obj print sql jid.append(obj) arg.remove('sysinit') if arg: for i in arg: obj = sapi.async_deploy(tgt, i) jid.append(obj) else: for i in arg: obj = sapi.async_deploy(tgt, i) sql = "insert INTO salt_returns VALUES(%s) " % obj db.mysql_command(settings.OMS_MYSQL, sql) jid.append(obj) msg = '%s deploy %s module success,jid is %s' % (tgt, i, obj) ret.append(msg) # db = db_operate() # for i in jid: # # time.sleep(10) # sql = 'select returns from salt_returns where returns=%s' # result=db.select_table(settings.OMS_MYSQL,sql,str(i)) #通过jid获取执行结果 # print result # ret.extend(result) # sapi.async_deploy('test-01','zabbix.api') #调用zabbix.api执行模块监控 else: ret = '亲,目标主机不对,请重新输入' return render(request, 'salt_module_deploy.html', {'ret': ret})
def module_deploy(request): """ deploy (nginx/php/mysql..etc) module :param request: :return: """ ret = [] jid = [] user = request.user if request.method == 'POST': action = request.get_full_path().split('=')[1] if action == 'deploy': tgt = request.POST.get('tgt') arg = request.POST.getlist('module') tgtcheck = HostList.objects.filter(hostname=tgt) if tgtcheck: Message.objects.create(type='salt', action='deploy', action_ip=tgt, content='saltstack %s module deploy' % (arg)) sapi = SaltAPI(url=settings.SALT_API['url'], username=settings.SALT_API['user'], password=settings.SALT_API['password']) db = db_operate() if 'sysinit' in arg: obj = sapi.async_deploy(tgt, arg[-1]) sql = "instert INTO salt_returns VALUES(%s) " % obj print sql jid.append(obj) arg.remove('sysinit') if arg: for i in arg: obj = sapi.async_deploy(tgt, i) jid.append(obj) else: for i in arg: obj = sapi.async_deploy(tgt, i) sql = "insert INTO salt_returns VALUES(%s) " % obj db.mysql_command(settings.OMS_MYSQL, sql) jid.append(obj) msg = '%s deploy %s module success,jid is %s' % (tgt, i, obj) ret.append(msg) else: ret = '目标主机不对,请重新输入' return render(request, 'salt_module_deploy.html', {'ret': ret})