def oscar(): args = getArgs() check = Check() check.loginUser() MASTER = GetBaseconfig.MASTER NODE = GetBaseconfig.NODE masterHostname = [masterHostname for master, masterHostname in MASTER] nodeHostname = [nodeHostname for node, nodeHostname in NODE] if args.module_name == "install": # 安装k8s集群 ha 多master版本 choices = ('k8s', 'master', 'node') Print("Start checking the initialization environment ...", colour="green") Print("Master: {}.".format(MASTER), colour="green") Print("Node: {}.".format(NODE), colour="green") if args.args == "k8s": # 检查 master node 机器是否能连通 check.check_vip() check.check_master() check.check_node() # 检查 机器内核版本 for masterName in masterHostname: check.check_kernel(masterName) for masterName in masterHostname: HAk8sCluster(masterName).install_master() for nodeName in nodeHostname: HAk8sCluster(nodeName).install_node() # helmInstall() HAk8sCluster.end() elif args.args == "master": check.check_master() for masterName in masterHostname: HAk8sCluster(masterName, ).install_master() elif args.args == "node": check.check_node() for nodeName in nodeHostname: HAk8sCluster(nodeName).install_node() HAk8sCluster.end() elif args.args == "helm": helmInstall() elif args.args == "ingress": status = check.check_helm('tiller-deploy') if status: ingressInstall() else: for i in range(1, 10): time.sleep(10) status = check.check_helm('tiller-deploy') if status: ingressInstall() break else: Print( "\033[1;31mWarning: Ingress try it for {}...\033[0m" .format(i), colour="yellow") if i == 9: Print( "Please try again later to ensure that the helm installation is successful", colour="yellow") print( "\033[1;31mError: Ingress install Failed.\033[0m" ) else: continue elif args.args == "nfs": check.check_helm('tiller-deploy') nfsInstall() elif args.args == "gitlab": Gitlab().gitlabYamlInstall() elif args.args == "harbor": Harbor().harborInstall() elif args.args == "rbd": CephRBD().rbdInstall() elif args.args == "test": from atom.common import run print run(hostname='localhost', cmd='ls /home') else: print("Error: Not Found {}.Please enter the parameters correctly". format(args.args)) elif args.module_name == "delete": if args.delete == "gitlab": Gitlab().remove_yaml() elif args.delete == "harbor": Harbor().remove_harbor() elif args.delete == "rbd": CephRBD().rbdRemove() else: print( "Error: Not Found args.Please enter the parameters correctly.") elif args.module_name == "update": kernel = Kernel() check.check_master() # 升级 master 节点内核版本 if args.args == "linux_kernel": check.check_master() update_kernel_status = raw_input( "[execute [update linux kernel] ?( yes/no)] ") if update_kernel_status == "yes": kernel.other_kernel() kernel.local_kernel() else: Print("Exit the update kernel.", colour="red") else: print( "Error: Not Found args.Please enter the parameters correctly.") # 指定Linux升级内核版本 if args.host: kernel.update_linux_kernel(args.host) elif args.module_name == "add_ssh_key": try: username = args.username password = args.password masterName = [ masterName for masterName in masterHostname if masterName != socket.gethostname() ] nodeHostname.extend(masterName) for hostname in nodeHostname: getMasterSSHKey(hostname=hostname, username=username, password=password) except: Print('Getting username or password parameter error.', colour="yellow")