From 3df65a2aca0689a90f62995bfac3e71e0fc9dd61 Mon Sep 17 00:00:00 2001 From: manuel Date: Wed, 17 Jul 2024 11:21:48 +0000 Subject: [PATCH] update python modules for the server builds --- .../{debian => debsrv}/configure_apache2.sh | 0 .../{debian => debsrv}/configure_firewalld.sh | 0 .../{debian => debsrv}/configure_hostname.sh | 0 .../{debian => debsrv}/configure_mariadb.sh | 0 .../{debian => debsrv}/configure_nginx.sh | 0 .../configure_php_and_docker.sh | 0 .../{debian => debsrv}/configure_postfix.sh | 0 .../configure_postgresql.sh | 0 .../{debian => debsrv}/configure_sqlite.sh | 0 .../{debian => debsrv}/configure_ssh.sh | 0 .../{debian => debsrv}/configure_static_ip.sh | 0 .../scripts/{debian => debsrv}/create_user.sh | 0 .../{debian => debsrv}/update_and_install.sh | 0 .../scripts/{debian => debsrv}/welcome.sh | 0 .../{devuan => devsrv}/configure_apache2.sh | 0 .../{devuan => devsrv}/configure_firewalld.sh | 0 .../{devuan => devsrv}/configure_hostname.sh | 0 .../{devuan => devsrv}/configure_mariadb.sh | 0 .../{devuan => devsrv}/configure_nginx.sh | 0 .../configure_php_and_docker.sh | 0 .../{devuan => devsrv}/configure_postfix.sh | 0 .../configure_postgresql.sh | 0 .../{devuan => devsrv}/configure_sqlite.sh | 0 .../{devuan => devsrv}/configure_ssh.sh | 0 .../{devuan => devsrv}/configure_static_ip.sh | 0 .../scripts/{devuan => devsrv}/create_user.sh | 0 .../{devuan => devsrv}/update_and_install.sh | 0 .../scripts/{devuan => devsrv}/welcome.sh | 0 python_modules/inflate_bubble.py | 1 - python_modules/infra.py | 152 ++++++++++-------- 30 files changed, 82 insertions(+), 71 deletions(-) rename iso_configs/server/scripts/{debian => debsrv}/configure_apache2.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_firewalld.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_hostname.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_mariadb.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_nginx.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_php_and_docker.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_postfix.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_postgresql.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_sqlite.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_ssh.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/configure_static_ip.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/create_user.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/update_and_install.sh (100%) rename iso_configs/server/scripts/{debian => debsrv}/welcome.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_apache2.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_firewalld.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_hostname.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_mariadb.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_nginx.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_php_and_docker.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_postfix.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_postgresql.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_sqlite.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_ssh.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/configure_static_ip.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/create_user.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/update_and_install.sh (100%) rename iso_configs/server/scripts/{devuan => devsrv}/welcome.sh (100%) diff --git a/iso_configs/server/scripts/debian/configure_apache2.sh b/iso_configs/server/scripts/debsrv/configure_apache2.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_apache2.sh rename to iso_configs/server/scripts/debsrv/configure_apache2.sh diff --git a/iso_configs/server/scripts/debian/configure_firewalld.sh b/iso_configs/server/scripts/debsrv/configure_firewalld.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_firewalld.sh rename to iso_configs/server/scripts/debsrv/configure_firewalld.sh diff --git a/iso_configs/server/scripts/debian/configure_hostname.sh b/iso_configs/server/scripts/debsrv/configure_hostname.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_hostname.sh rename to iso_configs/server/scripts/debsrv/configure_hostname.sh diff --git a/iso_configs/server/scripts/debian/configure_mariadb.sh b/iso_configs/server/scripts/debsrv/configure_mariadb.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_mariadb.sh rename to iso_configs/server/scripts/debsrv/configure_mariadb.sh diff --git a/iso_configs/server/scripts/debian/configure_nginx.sh b/iso_configs/server/scripts/debsrv/configure_nginx.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_nginx.sh rename to iso_configs/server/scripts/debsrv/configure_nginx.sh diff --git a/iso_configs/server/scripts/debian/configure_php_and_docker.sh b/iso_configs/server/scripts/debsrv/configure_php_and_docker.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_php_and_docker.sh rename to iso_configs/server/scripts/debsrv/configure_php_and_docker.sh diff --git a/iso_configs/server/scripts/debian/configure_postfix.sh b/iso_configs/server/scripts/debsrv/configure_postfix.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_postfix.sh rename to iso_configs/server/scripts/debsrv/configure_postfix.sh diff --git a/iso_configs/server/scripts/debian/configure_postgresql.sh b/iso_configs/server/scripts/debsrv/configure_postgresql.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_postgresql.sh rename to iso_configs/server/scripts/debsrv/configure_postgresql.sh diff --git a/iso_configs/server/scripts/debian/configure_sqlite.sh b/iso_configs/server/scripts/debsrv/configure_sqlite.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_sqlite.sh rename to iso_configs/server/scripts/debsrv/configure_sqlite.sh diff --git a/iso_configs/server/scripts/debian/configure_ssh.sh b/iso_configs/server/scripts/debsrv/configure_ssh.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_ssh.sh rename to iso_configs/server/scripts/debsrv/configure_ssh.sh diff --git a/iso_configs/server/scripts/debian/configure_static_ip.sh b/iso_configs/server/scripts/debsrv/configure_static_ip.sh similarity index 100% rename from iso_configs/server/scripts/debian/configure_static_ip.sh rename to iso_configs/server/scripts/debsrv/configure_static_ip.sh diff --git a/iso_configs/server/scripts/debian/create_user.sh b/iso_configs/server/scripts/debsrv/create_user.sh similarity index 100% rename from iso_configs/server/scripts/debian/create_user.sh rename to iso_configs/server/scripts/debsrv/create_user.sh diff --git a/iso_configs/server/scripts/debian/update_and_install.sh b/iso_configs/server/scripts/debsrv/update_and_install.sh similarity index 100% rename from iso_configs/server/scripts/debian/update_and_install.sh rename to iso_configs/server/scripts/debsrv/update_and_install.sh diff --git a/iso_configs/server/scripts/debian/welcome.sh b/iso_configs/server/scripts/debsrv/welcome.sh similarity index 100% rename from iso_configs/server/scripts/debian/welcome.sh rename to iso_configs/server/scripts/debsrv/welcome.sh diff --git a/iso_configs/server/scripts/devuan/configure_apache2.sh b/iso_configs/server/scripts/devsrv/configure_apache2.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_apache2.sh rename to iso_configs/server/scripts/devsrv/configure_apache2.sh diff --git a/iso_configs/server/scripts/devuan/configure_firewalld.sh b/iso_configs/server/scripts/devsrv/configure_firewalld.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_firewalld.sh rename to iso_configs/server/scripts/devsrv/configure_firewalld.sh diff --git a/iso_configs/server/scripts/devuan/configure_hostname.sh b/iso_configs/server/scripts/devsrv/configure_hostname.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_hostname.sh rename to iso_configs/server/scripts/devsrv/configure_hostname.sh diff --git a/iso_configs/server/scripts/devuan/configure_mariadb.sh b/iso_configs/server/scripts/devsrv/configure_mariadb.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_mariadb.sh rename to iso_configs/server/scripts/devsrv/configure_mariadb.sh diff --git a/iso_configs/server/scripts/devuan/configure_nginx.sh b/iso_configs/server/scripts/devsrv/configure_nginx.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_nginx.sh rename to iso_configs/server/scripts/devsrv/configure_nginx.sh diff --git a/iso_configs/server/scripts/devuan/configure_php_and_docker.sh b/iso_configs/server/scripts/devsrv/configure_php_and_docker.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_php_and_docker.sh rename to iso_configs/server/scripts/devsrv/configure_php_and_docker.sh diff --git a/iso_configs/server/scripts/devuan/configure_postfix.sh b/iso_configs/server/scripts/devsrv/configure_postfix.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_postfix.sh rename to iso_configs/server/scripts/devsrv/configure_postfix.sh diff --git a/iso_configs/server/scripts/devuan/configure_postgresql.sh b/iso_configs/server/scripts/devsrv/configure_postgresql.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_postgresql.sh rename to iso_configs/server/scripts/devsrv/configure_postgresql.sh diff --git a/iso_configs/server/scripts/devuan/configure_sqlite.sh b/iso_configs/server/scripts/devsrv/configure_sqlite.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_sqlite.sh rename to iso_configs/server/scripts/devsrv/configure_sqlite.sh diff --git a/iso_configs/server/scripts/devuan/configure_ssh.sh b/iso_configs/server/scripts/devsrv/configure_ssh.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_ssh.sh rename to iso_configs/server/scripts/devsrv/configure_ssh.sh diff --git a/iso_configs/server/scripts/devuan/configure_static_ip.sh b/iso_configs/server/scripts/devsrv/configure_static_ip.sh similarity index 100% rename from iso_configs/server/scripts/devuan/configure_static_ip.sh rename to iso_configs/server/scripts/devsrv/configure_static_ip.sh diff --git a/iso_configs/server/scripts/devuan/create_user.sh b/iso_configs/server/scripts/devsrv/create_user.sh similarity index 100% rename from iso_configs/server/scripts/devuan/create_user.sh rename to iso_configs/server/scripts/devsrv/create_user.sh diff --git a/iso_configs/server/scripts/devuan/update_and_install.sh b/iso_configs/server/scripts/devsrv/update_and_install.sh similarity index 100% rename from iso_configs/server/scripts/devuan/update_and_install.sh rename to iso_configs/server/scripts/devsrv/update_and_install.sh diff --git a/iso_configs/server/scripts/devuan/welcome.sh b/iso_configs/server/scripts/devsrv/welcome.sh similarity index 100% rename from iso_configs/server/scripts/devuan/welcome.sh rename to iso_configs/server/scripts/devsrv/welcome.sh diff --git a/python_modules/inflate_bubble.py b/python_modules/inflate_bubble.py index e9bb056c..52094a79 100644 --- a/python_modules/inflate_bubble.py +++ b/python_modules/inflate_bubble.py @@ -95,7 +95,6 @@ def set_fusato_server_installer_structure(): # Define the directories to be created in includes-installer installer_dirs = ['/preseed', '/usr/lib/finish-install.d/', - '/usr/share/' ] # Create the directories in includes-installer diff --git a/python_modules/infra.py b/python_modules/infra.py index be34986c..1e0ce45a 100644 --- a/python_modules/infra.py +++ b/python_modules/infra.py @@ -24,14 +24,6 @@ WPINSTALLER = "/fusato/config/includes.installer" BINARYPTH = "/fusato/config/includes.binary" BOOTSTRAP = "/fusato/config/includes.bootstrap" FUSATOCONFIG = "/fusato/config" -BASE_CONFIG = { - "debsrv": { - "scripts_dir": "/server/scripts/debian/", - }, - "devsrv": { - "scripts_dir": "/server/scripts/devuan/", - } -} # Set up the logging format @@ -314,75 +306,95 @@ def mini_shared_installer_files(): logger.info(f"Copy completed: {des_path}") class ServerConfigFiles: + """ + Copies server initial config files CHROOT depending on the base. """ - Class to handle copying server configuration files. - """ - - def __init__(self,sbase,sarch): - logger.info("Copy server configuration files") - self.sbase = sbase + ALLOWED_BASES = {"debsrv", "devsrv"} + def __init__(self, base, sarch=None): + self.base = base self.sarch = sarch + if self.base not in self.ALLOWED_BASES: + logger.warning(f"Base '{self.base}' is not allowed. Skipping.") + return + logger.info(f"Copy Server Files for base: {self.base}") + server_path = '/server/scripts/' + self.src_paths = ( + f'{server_path}{self.base}/welcome.sh', + f'{server_path}{self.base}/configure_apache2.sh', + f'{server_path}{self.base}/configure_firewalld.sh', + f'{server_path}{self.base}/configure_hostname.sh', + f'{server_path}{self.base}/configure_mariadb.sh', + f'{server_path}{self.base}/configure_nginx.sh', + f'{server_path}{self.base}/configure_php_and_docker.sh', + f'{server_path}{self.base}/configure_postfix.sh', + f'{server_path}{self.base}/configure_postgresql.sh', + f'{server_path}{self.base}/configure_sqlite.sh', + f'{server_path}{self.base}/configure_ssh.sh', + f'{server_path}{self.base}/configure_static_ip.sh', + f'{server_path}{self.base}/create_user.sh', + f'{server_path}{self.base}/update_and_install.sh' + ) - def copy_server_config_files(self): - """ - Copy server configuration files . - """ - logger.info(f"Copying server configuration files for {self.sbase.capitalize()}") + self.des_paths = ( + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin', + '/usr/local/bin' + ) + self.copy_files() - src_paths = [ - 'welcome.sh', - 'configure_apache2.sh', - 'configure_firewalld.sh', - 'configure_hostname.sh', - 'configure_mariadb.sh', - 'configure_nginx.sh', - 'configure_php_and_docker.sh', - 'configure_postfix.sh', - 'configure_postgresql.sh', - 'configure_sqlite.sh', - 'configure_ssh.sh', - 'configure_static_ip.sh', - 'create_user.sh', - 'update_and_install.sh', - ] - des_paths = [ - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - '/usr/local/bin', - ] - - for src_file, des_dir in zip(src_paths, des_paths): - src_path = os.path.join(BASE_CONFIG[self.sbase]["scripts_dir"], src_file) - des_path = os.path.join(self.build_base.HOME_FOLDER, self.build_base.WPCHROOT, des_dir, src_file) - - logger.info(f"Copying {src_path} to {des_path}") + def copy_files(self): + """ Ensure destination directories exist before copying""" + for des in self.des_paths: + full_des_path = os.path.join(HOME_FOLDER, WPCHROOT.strip('/'), des.strip('/')) try: - if os.path.isdir(src_path): - shutil.copytree(src_path, des_path, ignore_dangling_symlinks=True) - else: - shutil.copy2(src_path, des_path) + os.makedirs(full_des_path, exist_ok=True) + logger.info(f"Ensured directory exists: {full_des_path}") except Exception as e: - logger.error(f"Error copying {src_path} to {des_path}: {e}") - else: - logger.info(f"Successfully copied {src_path} to {des_path}") - -# Exemplo de uso: -if __name__ == "__main__": - sbase = build_base.sbase - sarch = build_base.sarch - server_config_files = ServerConfigFiles(sbase, sarch, build_base) + logger.error(f"Error creating directory {full_des_path}: {e}") + src_q = collections.deque(self.src_paths) + des_q = collections.deque(self.des_paths) + size_q = len(src_q) + for _ in range(size_q): + source = src_q.popleft() + des = des_q.popleft() + full_src_path = os.path.join(HOME_FOLDER, source.strip('/')) + full_des_path = os.path.join(HOME_FOLDER, + WPCHROOT.strip('/'), des.strip('/') + ) + logger.info(MSG_COPY + full_src_path) + try: + if os.path.exists(full_src_path): + if os.path.isdir(full_src_path): + shutil.copytree(full_src_path, + os.path.join(full_des_path, + os.path.basename(full_src_path)), + dirs_exist_ok=True + ) + else: + shutil.copy(full_src_path, full_des_path) + logger.info(MSG_FIN + full_des_path) + else: + logger.error(f"Source path does not exist: {full_src_path}") + except Exception as e: + logger.error(f"Error copying {full_src_path} to {full_des_path}: {e}") + @classmethod + def run_for_all_bases(cls): + """ Define the bases to be used""" + bases = ["debsrv", "devsrv", "invalid_base"] + for base in bases: + cls(base) class ArchitectureFiles: """