Compare commits

...

7 Commits

View File

@@ -3,12 +3,15 @@
import os, sys, subprocess import os, sys, subprocess
class nfs_server_conf: class nfs_server_conf:
def __init__(self, nfs_srv_folders = ["/nfsroot/publicnfs","/nfsroot/datennfs"]) -> None: def __init__(self, nfs_srv_folders = ["/nfsroot/publicnfs","/nfsroot/datennfs"], nfs_config_file = "/etc/exports", allow_network = "192.168.50.0/25") -> None:
if not os.geteuid()==0: if not os.geteuid()==0:
raise PermissionError("Sie sind kein Root") raise PermissionError("Sie sind kein Root")
self.nfs_srv_folders = nfs_srv_folders self.nfs_srv_folders = nfs_srv_folders
self.nfs_config_file = nfs_config_file
self.allow_network = allow_network
def mount_serverfolder(self): def mount_serverfolder(self):
list_mountfiles = []
for srv_folder in self.nfs_srv_folders: for srv_folder in self.nfs_srv_folders:
unit_mount_file = "/etc/systemd/system/" + os.path.basename(srv_folder) + ".mount" unit_mount_file = "/etc/systemd/system/" + os.path.basename(srv_folder) + ".mount"
mountfile = os.path.basename(unit_mount_file) mountfile = os.path.basename(unit_mount_file)
@@ -30,32 +33,57 @@ class nfs_server_conf:
else: else:
raise "Reloade konnte nicht ausgeführt werden." raise "Reloade konnte nicht ausgeführt werden."
#Starte UnitFile #Starte UnitFile
list_mountfiles.append(mountfile)
if subprocess.run(['systemctl', 'start', mountfile]).returncode == 0: if subprocess.run(['systemctl', 'start', mountfile]).returncode == 0:
print(mountfile, "wurde gestartet !", sep=" ") print(mountfile, "wurde gestartet !", sep=" ")
else: else:
raise "Service" + mountfile +" konnte nicht gestart werden" raise "Service" + mountfile +" konnte nicht gestart werden"
return list_mountfiles
def nfs_server_conf(self): def nfs_server_conf(self):
with open("/etc/exports",'r') as exportfs_file: folder_count = []
for exportfs_line in map(str(exportfs_file.readlines()).rstrip("\n")): for srv_folder in self.nfs_srv_folders:
print(exportfs_line) index_count = 0
#print(exportfs_line.rstrip("\n"), sep="") with open(self.nfs_config_file,'r') as exportfs_file:
exportfs_exist = []
print(srv_folder)
for exportfs_line in exportfs_file.readlines():
checkline = exportfs_line.rstrip("\n")[0:len(srv_folder)]
if checkline == srv_folder:
index_count += 1
folder_count.append({"folder_name": srv_folder, "count_exist":index_count})
for folder_counting in folder_count:
if folder_counting["count_exist"] > 0:
print(folder_counting["folder_name"], "ist vorhanden in", self.nfs_config_file )
else:
os.path.abspath(folder_counting["folder_name"])
with open(self.nfs_config_file, 'a') as add_exportfile:
print(os.path.dirname(folder_counting["folder_name"]), self.allow_network + "(rw,sync,insecure,root_squash,no_subtree_check,fsid=0)", file=add_exportfile)
print(folder_counting["folder_name"], self.allow_network + "(rw,sync,insecure,root_squash,no_subtree_check)", file=add_exportfile)
print(folder_counting["folder_name"], "ist NICHT vorhanden in", self.nfs_config_file )
def nfs_con_user(self): def nfs_con_user(self):
pass pass
#wait
def start_nfs_server(self): def start_nfs_server(self):
pass unitname_nfsv4 = "nfsv4-server.service"
if subprocess.run(['systemctl', 'restart', unitname_nfsv4]).returncode == 0:
print(unitname_nfsv4, "wurde gestartet !", sep=" ")
return True
else:
raise "Service" + unitname_nfsv4 +" konnte nicht gestart werden"
def main(self):
def main_install(self):
nfs_server_conf.mount_serverfolder(self) nfs_server_conf.mount_serverfolder(self)
nfs_server_conf.nfs_server_conf(self) nfs_server_conf.nfs_server_conf(self)
nfs_server_conf.start_nfs_server(self)
def __str__(self) -> str: def __str__(self) -> str:
pass pass
if __name__ == "__main__": if __name__ == "__main__":
my_nfs_server = nfs_server_conf() my_nfs_server = nfs_server_conf(allow_network="*")
my_nfs_server.main() my_nfs_server.main_install()