Compare commits
7 Commits
0f4e6fdb73
...
a14d7b77fa
| Author | SHA1 | Date | |
|---|---|---|---|
| a14d7b77fa | |||
| 3b11946df8 | |||
| 9e20352d7f | |||
| 107b50a3ad | |||
| c831bf7c50 | |||
| 4b21d1422a | |||
| 0fea7eee0c |
@@ -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)
|
||||||
@@ -25,37 +28,62 @@ class nfs_server_conf:
|
|||||||
print("""[Unit]\nDescription=Mount nfs Server Share\n[Mount]\nWhat={srv_folder}\nWhere={srv_point}\nType=None\nOptions=bind\n[Install]\nWantedBy=multi-user.target""".format(
|
print("""[Unit]\nDescription=Mount nfs Server Share\n[Mount]\nWhat={srv_folder}\nWhere={srv_point}\nType=None\nOptions=bind\n[Install]\nWantedBy=multi-user.target""".format(
|
||||||
srv_folder=srv_folder,
|
srv_folder=srv_folder,
|
||||||
srv_point="/" + os.path.basename(srv_folder)), file=unit_file)
|
srv_point="/" + os.path.basename(srv_folder)), file=unit_file)
|
||||||
if subprocess.run(['systemctl', 'daemon-reload']) .returncode == 0:
|
if subprocess.run(['systemctl', 'daemon-reload']).returncode == 0:
|
||||||
print("Systemed daemon-reload wurde ausgeführt")
|
print("Systemed daemon-reload wurde ausgeführt")
|
||||||
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()
|
||||||
Reference in New Issue
Block a user