def acessar_servidor(self, login): try: srvs = session.query(Servidores).all() for s in srvs: print " %s - %s Administrador Atual [%s]" % (s.id, s.nome, s.administrador) srv = input("Digite o numero do servidor que voce quer acessar: ") servidor = session.query(Servidores).filter( Servidores.id == srv).first() mf = MongoFunctions() mf.registrar_logs(login, servidor.endereco_ip) ssh = SSH() docker = Docker() print "Para sair digite exit" while True: comando = raw_input("root@%s # " % servidor.nome) print ssh.executarComandoRemoto( docker.acessarContainer(servidor.nome, comando)) if comando == "exit": break except Exception as e: print "Erro: %s" % e session.rollback()
def acessar_container(self): print "acessando containers" try: engine = create_engine("postgresql://*****:*****@127.0.0.1/test") Session = sessionmaker() Session.configure(bind=engine) session = Session() servidores = session.query(Servidores).all() for s in servidores: print "Id:",s.id,"Nome:",s.nome,"IP:",s.endereco opcao = input("Digite o ID do container que deseja acessar: ") servidor = session.query(Servidores).filter(Servidores.id==opcao).first() ask = raw_input("Tem certeza que deseja acessar o container %s? (s ou n): "%servidor.nome) if ask == 's': docker = Docker() ssh = SSH() print "Para sair digit exit" while True: comando = raw_input("root@%s# "%servidor.nome) if comando == 'exit': break s = ssh.executarComandoRemoto(docker.acessarContainer(servidor.nome, comando)) print s else: print "Parece que vc desistiu!" except Exception as e: print "Erro: %s"%e
def cadastrar(self): #sempre chama o dicionario em funcao da funcao self.nome = raw_input("Digite o hostname do server: ") self.descricao = raw_input("Digite descricao para o server: ") #self.ip = raw_input("Digite IP para o server: ") try: ssh = SSH() docker = Docker() ssh.executa_comando(docker.criar(self.nome)) container = ssh.executa_comando(docker.pegar_ip(self.nome)) container = json.loads(container) self.ip = container[0].get("NetworkSettings").get("IPAddress") s = ServidorModel(self) #s.nome = servidor.get("nome") #s.descricao = servidor.get("descricao") #s.ip = servidor.get("ip") session.add(s) session.commit() print "Servidor cadastrado com sucesso!" except Exception as e: session.rollback() print "Falhou ao cadastrar servidor: ",e
def cadastrar(self): #sempre chama o dicionario em funcao da funcao self.nome = raw_input("Digite o hostname do server: ") self.descricao = raw_input("Digite descricao para o server: ") #self.ip = raw_input("Digite IP para o server: ") try: ssh = SSH() docker = Docker() ssh.executa_comando(docker.criar(self.nome)) container = ssh.executa_comando(docker.pegar_ip(self.nome)) container = json.loads(container) self.ip = container[0].get("NetworkSettings").get("IPAddress") s = ServidorModel(self) #s.nome = servidor.get("nome") #s.descricao = servidor.get("descricao") #s.ip = servidor.get("ip") session.add(s) session.commit() print "Servidor cadastrado com sucesso!" except Exception as e: session.rollback() print "Falhou ao cadastrar servidor: ", e
def cadastrar_servidor(self): try: servidor = {} servidor["nome"] = raw_input("Digite o nome desse servidor: ") servidor["administrador"] = raw_input("Digite o administrador: ") ssh = SSH() docker = Docker() ssh.executarComandoRemoto(docker.criarContainer(servidor['nome'])) srv = json.loads(ssh.executarComandoRemoto(docker.pegarIPContainer(servidor['nome']))) servidor["endereco"] = srv[0]['NetworkSettings']['Networks']['bridge']['IPAddress'] srv = ServidoresModel(servidor["nome"],servidor['endereco'],servidor["administrador"]) session.add(srv) session.commit() print "Cadastrado com sucesso!!!" except Exception as e: print "Falhou ao conectar com o banco %s"%e session.rollback()
def cadastrar(self): self.nome = raw_input("Digite o nome do servidor:") self.descricao = raw_input("Digite uma descricao: ") try: # instancia dos objetos SSH e Docker ssh = SSH() docker = Docker() ssh.executar_comando(docker.criar(self.nome)) container = ssh.executar_comando(docker.pegar_ip(self.nome)) container = json.loads(container) self.ip = container[0].get("NetworkSettings").get("IPAddress") s = ServidorModel(self) session.add(s) session.commit() except Exception as e: session.rollback() print "Falhou ao cadastrar servidor: ",e
def acessar_servidor(self,login): try: srvs = session.query(ServidoresModel).all() for s in srvs: print "%s - %s Administrador Atual[%s]"%(s.id,s.nome,s.administrator) srv = input("Digite o numero do servidor que voce quer acessar: ") servidor = session.query(ServidoresModel).filter(ServidoresModel.id==srv).first() mf = MongoFunctions() mf.registrar_logs(login,servidor.endereco_ip) docker = Docker() ssh = SSH() print "Para sair digite exit" while True: comando = raw_input("root@%s # "%servidor.nome) print ssh.executarComandoRemoto(docker.acessarContainer(servidor.nome,comando)) if comando == "exit": break except Exception as e: print "Erro! %s"%e
class Docker: def __init__(self): self.ssh = SSH() def create(self, nome): cmd = 'docker run -tdi --name {0} debian /bin/bash'.format(nome) container = self.ssh.send_cmd(cmd) return container def rem(self, nome): cmd = 'docker stop {0} && docker rm {0}'.format(nome) container = self.ssh.send_cmd(cmd) return container def ip(self, nome): cmd = 'docker inspect {0}'.format(nome) ip = self.ssh.send_cmd(cmd) ip = json.loads(ip) ip = ip[0].get('NetworkSettings').get('IPAddress') return ip
def cadastrar_container(self): print "Cadastro de Servidores" try: nome = raw_input("Digite o nome do container: ") admLogin = raw_input("Digite o adm do container %s: "%nome) docker = Docker() ssh = SSH() ssh.executarComandoRemoto(docker.criarContainer(nome)) srv = json.loads(ssh.executarComandoRemoto(docker.pegarIPContainer(nome))) ipServer = srv[0]["NetworkSettings"]["Networks"]["bridge"]["IPAddress"] engine = create_engine("postgresql://*****:*****@127.0.0.1/test") Session = sessionmaker() Session.configure(bind=engine) session = Session() servidor = Servidores(nome, ipServer, admLogin) session.add(servidor) session.commit() print "(Container: %s - IP: %s - Adm: %s) cadastrado com sucesso"%(nome, ipServer, admLogin) except Exception as e: print "Erro: "%e session.rollback()
def cadastro_servidor(self): try: print "\n+Sistemas de Autenticacao\n" servidor = {} servidor["nome"] = raw_input("Digite o nome do servidor: ") servidor["administrador"] = raw_input("Digite o adm do servidor: ") ssh = SSH() docker = Docker() ssh.executarComandoRemoto(docker.criarContainer(servidor["nome"])) srv = json.loads( ssh.executarComandoRemoto( docker.pegarIPContainer(servidor['nome']))) servidor["endereco"] = srv[0]['NetworkSettings']['Networks'][ 'bridge']['IPAddress'] srv = Servidores(servidor["nome"], servidor["endereco"], servidor["administrador"]) session.add(srv) session.commit() print "\nServidor Cadastrado com sucesso\n" except Exception as e: print "Falhou ao inserir no banco aqui %s" % e session.rollback()
def remover_container(self): print "Removendo containers" try: engine = create_engine("postgresql://*****:*****@127.0.0.1/test") Session = sessionmaker() Session.configure(bind=engine) session = Session() servidores = session.query(Servidores).all() for s in servidores: print "Id:",s.id,"Nome:",s.nome,"IP:",s.endereco opcao = input("Digite o ID do servidor que deseja remover: ") servidor = session.query(Servidores).filter(Servidores.id==opcao).first() ask = raw_input("Tem certeza que deseja remover o servidor %s? (s ou n): "%servidor.nome) if ask == 's': docker = Docker() ssh = SSH() ssh.executarComandoRemoto(docker.removerContainer(servidor.nome)) session.delete(servidor) session.commit() print "Servidor %s removido com sucesso!"%servidor.nome else: print "Parece que vc desistiu!" except Exception as e: print "Erro: %s"%e
def switch(self,x): try: usuario_obj = Usuarios() servidor_obj = Servidores() ssh = SSH() dicionario_funcoes = {1:usuario_obj.cadastrar, 2:usuario_obj.listar, 3:usuario_obj.remover, 4:servidor_obj.cadastrar, 5:servidor_obj.listar, 6:servidor_obj.remover, 7:servidor_obj.exec_comando_servidor} dicionario_funcoes[x]() except Exception as e: print "Opcao invalida ",e
def __init__(self): self.image = "webservercloud" SSH.__init__(self)
def __init__(self): self.ssh = SSH()