diff --git a/installer/opengnsys_git_installer.py b/installer/opengnsys_git_installer.py index a704ae4..ebf1288 100755 --- a/installer/opengnsys_git_installer.py +++ b/installer/opengnsys_git_installer.py @@ -349,23 +349,23 @@ class OpengnsysGitInstaller: client_initrd_path = os.path.join(tftp_dir, ogclient, INITRD) client_initrd_path_new = client_initrd_path + ".new" - self.__logger.info("initrd path is %s", client_initrd_path) + self.__logger.debug("initrd path for ogclient %s is %s", ogclient, client_initrd_path) temp_dir = tempfile.TemporaryDirectory() - #temp_dir_path = temp_dir.name() + temp_dir_path = temp_dir.name - temp_dir_path = "/tmp/extracted" + #temp_dir_path = "/tmp/extracted" if os.path.exists(temp_dir_path): shutil.rmtree(temp_dir_path) pathlib.Path(temp_dir_path).mkdir(parents=True, exist_ok = True) - self.__logger.info("Uncompressing initrd %s into %s", client_initrd_path, temp_dir_path) + self.__logger.debug("Uncompressing initrd %s into %s", client_initrd_path, temp_dir_path) os.chdir(temp_dir_path) libarchive.extract_file(client_initrd_path, flags = EXTRACT_UNLINK | EXTRACT_OWNER | EXTRACT_PERM | EXTRACT_FFLAGS | EXTRACT_TIME) ssh_key_dir = os.path.join(temp_dir_path, "scripts", "ssl") @@ -374,11 +374,13 @@ class OpengnsysGitInstaller: authorized_keys_path = os.path.join(ssh_key_dir, "authorized_keys") + + # Create a SSH key on the oglive, if needed pathlib.Path(ssh_key_dir).mkdir(parents=True, exist_ok=True) if os.path.exists(client_key_path): - self.__logger.debug("Creating SSH key not necessary, it already is in the initrd") + self.__logger.info("Creating SSH key not necessary, it already is in the initrd") else: - self.__logger.debug("Writing new SSH key into %s", client_key_path) + self.__logger.info("Writing new SSH key into %s", client_key_path) subprocess.run(["/usr/bin/ssh-keygen", "-t", "ed25519", "-N", "", "-f", client_key_path], check=True) public_keys = "" @@ -772,10 +774,31 @@ class OpengnsysGitInstaller: if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)20s - [%(levelname)5s] - %(message)s') - logger = logging.getLogger(__name__) + sys.stdout.reconfigure(encoding='utf-8') + + opengnsys_log_dir = "/opt/opengnsys/log" + + logger = logging.getLogger(__package__) logger.setLevel(logging.DEBUG) - logger.info("Inicio del programa") + + streamLog = logging.StreamHandler() + streamLog.setLevel(logging.INFO) + + if not os.path.exists(opengnsys_log_dir): + os.mkdir(opengnsys_log_dir) + + logFilePath = f"{opengnsys_log_dir}/git_installer.log" + fileLog = logging.FileHandler(logFilePath) + fileLog.setLevel(logging.DEBUG) + + formatter = logging.Formatter('%(asctime)s - %(name)24s - [%(levelname)5s] - %(message)s') + + streamLog.setFormatter(formatter) + fileLog.setFormatter(formatter) + + logger.addHandler(streamLog) + logger.addHandler(fileLog) + parser = argparse.ArgumentParser( prog="OpenGnsys Installer", @@ -791,10 +814,19 @@ if __name__ == '__main__': parser.add_argument('--extract-ssh-key', action='store_true', help="Extract SSH key from oglive") parser.add_argument('--set-ssh-key', action='store_true', help="Configure SSH key in oglive") parser.add_argument('--oglive', type=int, metavar='NUM', help = "Do SSH key manipulation on this oglive") + parser.add_argument('--quiet', action='store_true', help="Quiet console output") + parser.add_argument("-v", "--verbose", action="store_true", help = "Verbose console output") + args = parser.parse_args() + if args.quiet: + streamLog.setLevel(logging.WARNING) + + if args.verbose: + streamLog.setLevel(logging.DEBUG) + installer = OpengnsysGitInstaller() installer.set_testmode(args.testmode) installer.set_ignoresshkey(args.ignoresshkey) @@ -811,7 +843,7 @@ if __name__ == '__main__': installer.set_ssh_user_group("oggit2", "oggit2") elif args.extract_ssh_key: key = installer._extract_ssh_key() - print(f"Key: {key}") + print(f"{key}") elif args.set_ssh_key: installer.set_ssh_key()