def multi_remote_exec_cmd(hosts, username, cmd): pool = Pool(processes=5) for host in hosts: username, password, ip, port = get_connect_item(username, host) pool.apply_async(remote_exec_cmd, (ip, port, username, password, cmd)) pool.close() pool.join()
for ip_info in hosts: if part_ip in ip_info[1:] and part_ip: ip_matched = [ip_info[1]] break for info in ip_info[1:]: if part_ip in info: ip_matched.append(ip_info[1]) ip_matched = list(set(ip_matched)) if len(ip_matched) > 1: for ip in ip_matched: print "%-15s -- %s" % (ip, hosts_attr[ip][2]) elif len(ip_matched) < 1: color_print("No Permission or No host.", "red") else: username, password, host, port = get_connect_item(username, ip_matched[0]) connect(username, password, host, port, LOGIN_NAME) def print_prompt(): msg = """\033[1;32m### Welcome Use JumpServer To Login. ### \033[0m 1) Type \033[32mIP or Part IP, Host Alias or Comments \033[0m To Login. 2) Type \033[32mP/p\033[0m To Print The Servers You Available. 3) Type \033[32mG/g\033[0m To Print The Server Groups You Available. 4) Type \033[32mG/g(1-N)\033[0m To Print The Server Group Hosts You Available. 5) Type \033[32mE/e\033[0m To Execute Command On Several Servers. 6) Type \033[32mQ/q\033[0m To Quit. """ print textwrap.dedent(msg)
for ip_info in hosts: if part_ip in ip_info[1:] and part_ip: ip_matched = [ip_info[1]] break for info in ip_info[1:]: if part_ip in info: ip_matched.append(ip_info[1]) ip_matched = list(set(ip_matched)) if len(ip_matched) > 1: for ip in ip_matched: print '%-15s -- %s' % (ip, hosts_attr[ip][2]) elif len(ip_matched) < 1: color_print('No Permission or No host.', 'red') else: username, password, host, port = get_connect_item(username, ip_matched[0]) connect(username, password, host, port, LOGIN_NAME) def print_prompt(): msg = """\033[1;32m### Welcome Use JumpServer To Login. ### \033[0m 1) Type \033[32mIP or Part IP, Host Alias or Comments \033[0m To Login. 2) Type \033[32mP/p\033[0m To Print The Servers You Available. 3) Type \033[32mG/g\033[0m To Print The Server Groups You Available. 4) Type \033[32mG/g(1-N)\033[0m To Print The Server Group Hosts You Available. 5) Type \033[32mE/e\033[0m To Execute Command On Several Servers. 6) Type \033[32mQ/q\033[0m To Quit. """ print textwrap.dedent(msg)
break for info in ip_info[1:]: if part_ip in info: ip_matched.append(ip_info[1]) try: ip_matched = list(set(ip_matched)) except: ip_matched = [] if len(ip_matched) > 1: for ip in ip_matched: print '%-15s %s -- %s' % (ip, hosts_attr[ip][3] ,hosts_attr[ip][2]) elif len(ip_matched) < 1: color_print('No Permission or No host.', 'red') else: username, password, host, port, login_type = get_connect_item(username, ip_matched[0]) connect(username, password, host, port, LOGIN_NAME, account, login_type) def print_prompt(): msg = """\033[1;32m### 欢迎使用堡垒机. ### \033[0m""" print textwrap.dedent(msg) def print_user_host(username): try: hosts_attr = get_user_host(username) except ServerError, e: color_print(e, 'red') return hosts = hosts_attr.keys()
for info in ip_info[1:]: if part_ip in info: ip_matched.append(ip_info[1]) try: ip_matched = list(set(ip_matched)) except: ip_matched = [] if len(ip_matched) > 1: for ip in ip_matched: print '%-15s %s -- %s' % (ip, hosts_attr[ip][3], hosts_attr[ip][2]) elif len(ip_matched) < 1: color_print('No Permission or No host.', 'red') else: username, password, host, port, login_type = get_connect_item( username, ip_matched[0]) connect(username, password, host, port, LOGIN_NAME, account, login_type) def print_prompt(): msg = """\033[1;32m### 欢迎使用堡垒机. ### \033[0m""" print textwrap.dedent(msg) def print_user_host(username): try: hosts_attr = get_user_host(username) except ServerError, e: color_print(e, 'red') return