forked from bashclub/zamba-lxc-toolbox
		
	Delete new-config.py
This commit is contained in:
		
							
								
								
									
										136
									
								
								new-config.py
									
									
									
									
									
								
							
							
						
						
									
										136
									
								
								new-config.py
									
									
									
									
									
								
							@@ -1,136 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/python3
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
from src import config_base, menu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check installation of zfs-auto-snapshot, if not installed, just notify user
 | 
					 | 
				
			||||||
config_base.check_zfs_autosnapshot()
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
cfg = {}
 | 
					 | 
				
			||||||
# set template storage
 | 
					 | 
				
			||||||
t_storages = config_base.get_pve_storages(content=config_base.PveStorageContent.vztmpl)
 | 
					 | 
				
			||||||
if len(t_storages.keys()) > 1:
 | 
					 | 
				
			||||||
    t_stors={}
 | 
					 | 
				
			||||||
    for st in t_storages.keys():
 | 
					 | 
				
			||||||
        t_stors[st] = f"driver: {t_storages[st]['driver']}\tfree space: {int(t_storages[st]['available'])/1024/1024:.2f} GB"
 | 
					 | 
				
			||||||
    cfg['LXC_TEMPLATE_STORAGE'] = menu.radiolist("Select container template storage", "Please choose the storage, where your container templates are stored.", t_stors)
 | 
					 | 
				
			||||||
elif len(t_storages.keys()) == 1:
 | 
					 | 
				
			||||||
    cfg['LXC_TEMPLATE_STORAGE'] = next(iter(t_storages))
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    print("Could not find any storage enabled for container templates. Please ensure your storages are configured properly.")
 | 
					 | 
				
			||||||
    os._exit(1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# get zmb service
 | 
					 | 
				
			||||||
cfg['ZMB_SERVICE'] = menu.radiolist("Select service","Please choose the service to install:", config_base.get_zmb_services())
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# get static ct features
 | 
					 | 
				
			||||||
ct_features = config_base.get_ct_features(cfg["ZMB_SERVICE"])
 | 
					 | 
				
			||||||
cfg['LXC_UNPRIVILEGED'] = ct_features['unprivileged']
 | 
					 | 
				
			||||||
# get ct id
 | 
					 | 
				
			||||||
cfg['LXC_NBR'] = menu.question("Container ID", f"Please select an ID for the {cfg['ZMB_SERVICE']} container.", menu.qType.Integer, config_base.get_ct_id(), config_base.validate_ct_id)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# configure rootfs
 | 
					 | 
				
			||||||
r_storages = config_base.get_pve_storages(driver=config_base.PveStorageType.zfspool,content=config_base.PveStorageContent.rootdir)
 | 
					 | 
				
			||||||
if len(r_storages.keys()) > 1:
 | 
					 | 
				
			||||||
    r_stors = {}
 | 
					 | 
				
			||||||
    for st in r_storages.keys():
 | 
					 | 
				
			||||||
        r_stors[st] = f"driver: {r_storages[st]['driver']}\tfree space: {int(r_storages[st]['available'])/1024/1024:.2f} GB"
 | 
					 | 
				
			||||||
    cfg['LXC_ROOTFS_STORAGE'] = menu.radiolist("Select rootfs storage", "Please choose the storage for your container's rootfs",r_stors)
 | 
					 | 
				
			||||||
elif len(r_storages.keys()) == 1:
 | 
					 | 
				
			||||||
    cfg['LXC_ROOTFS_STORAGE'] = next(iter(r_storages))
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    print("Could not find any storage enabled for container filesystems. Please ensure your storages are configured properly.")
 | 
					 | 
				
			||||||
    os._exit(1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cfg['LXC_ROOTFS_SIZE'] = menu.question("Set rootfs size","Please type in the desired rootfs size (GB)", menu.qType.Integer,32)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# create additional mountpoints
 | 
					 | 
				
			||||||
if 'size' in ct_features['sharefs'].keys():
 | 
					 | 
				
			||||||
    f_storages = config_base.get_pve_storages(driver=config_base.PveStorageType.zfspool,content=config_base.PveStorageContent.rootdir)
 | 
					 | 
				
			||||||
    if len(f_storages.keys()) > 1:
 | 
					 | 
				
			||||||
        f_stors = {}
 | 
					 | 
				
			||||||
        for st in f_storages.keys():
 | 
					 | 
				
			||||||
            f_stors[st] = f"driver: {f_storages[st]['driver']}\tfree space: {int(f_storages[st]['available'])/1024/1024:.2f} GB"
 | 
					 | 
				
			||||||
        cfg['LXC_SHAREFS_STORAGE'] = menu.radiolist("Select sharefs storage", "Please choose the storage of your shared filesystem", f_stors)
 | 
					 | 
				
			||||||
    elif len(r_storages.keys()) == 1:
 | 
					 | 
				
			||||||
        cfg['LXC_SHAREFS_STORAGE'] = next(iter(f_storages))
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        print("Could not find any storage enabled for container filesystems. Please ensure your storages are configured properly.")
 | 
					 | 
				
			||||||
        os._exit(1)
 | 
					 | 
				
			||||||
    cfg['LXC_SHAREFS_SIZE'] = menu.question("Select sharefs size","Please type in the desired size (GB) of your shared filesystem", menu.qType.Integer,ct_features['sharefs']['size'])
 | 
					 | 
				
			||||||
    cfg['LXC_SHAREFS_MOUNTPOINT'] = menu.question("Select sharefs mountpoint","Please type in the folder where to mount your shared filesystem inside the container.", menu.qType.String,ct_features['sharefs']['mountpoint'])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# configure ram and swap
 | 
					 | 
				
			||||||
cfg['LXC_MEM'] = menu.question("Set container RAM", "Please type in the desired amount of RAM for the container (MB)",menu.qType.Integer,ct_features["mem"])
 | 
					 | 
				
			||||||
cfg['LXC_SWAP'] = menu.question("Set container Swap", "Please type in the desired amount of Swap for the container (MB)",menu.qType.Integer,ct_features["swap"])
 | 
					 | 
				
			||||||
cfg['LXC_HOSTNAME'] = menu.question("Set container Hostname", "Please type in the desired hostname of the container",menu.qType.String,ct_features['hostname'])
 | 
					 | 
				
			||||||
cfg['LXC_DOMAIN'] = menu.question("Set container search domain", "Please type in the search domain of your network.", menu.qType.String,ct_features['domain'])
 | 
					 | 
				
			||||||
cfg['LXC_TIMEZONE'] = 'host' # TODO
 | 
					 | 
				
			||||||
cfg['LXC_LOCALE'] = "de_DE.utf8" # TODO
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# get pve bridge
 | 
					 | 
				
			||||||
bridges = config_base.get_pve_bridges()
 | 
					 | 
				
			||||||
if len(bridges) > 1:
 | 
					 | 
				
			||||||
    cfg['LXC_BRIDGE'] = menu.radiolist("Select PVE Network Bridge", f"Please select the network bridge to connect the {cfg['ZMB_SERVICE']} container",bridges)
 | 
					 | 
				
			||||||
elif len(bridges) == 1:
 | 
					 | 
				
			||||||
    cfg['LXC_BRIDGE'] = bridges[0]
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    print("Could not find any bridge device to connect container. Please ensure your networksettings are configured properly.")
 | 
					 | 
				
			||||||
    os._exit(1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cfg['LXC_VLAN'] = menu.question("Set vlan tag", "You you want to tag your container's network to a vlan? (0 = untagged, 1 - 4094 = tagged vlan id)",menu.qType.Integer,0, config_base.validate_vlan)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# configure network interface
 | 
					 | 
				
			||||||
if  cfg['ZMB_SERVICE'] != 'zmb-ad':
 | 
					 | 
				
			||||||
    enable_dhcp = menu.question("Set network mode", "Do you want to configure the network interface in dhcp mode?",menu.qType.Boolean,default=True)
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    enable_dhcp = False
 | 
					 | 
				
			||||||
if enable_dhcp == True:
 | 
					 | 
				
			||||||
    cfg["LXC_NET_MODE"] = 'dhcp'
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    cfg["LXC_NET_MODE"] = 'static'
 | 
					 | 
				
			||||||
    cfg["LXC_IP"] = menu.question("Set interface IP Addess", "Pleace type in the containers IP address (CIDR Format).",menu.qType.String,default='10.10.10.10/8')
 | 
					 | 
				
			||||||
    cfg["LXC_GW"] = menu.question("Set interface default gateway", "Pleace type in the containers default gateway.",menu.qType.String,default='10.10.10.1')
 | 
					 | 
				
			||||||
cfg['LXC_DNS']  = menu.question("Set containers dns server", "Pleace type in the containers dns server. ZMB AD will use this as dns forwarder",menu.qType.String,default='10.10.10.1')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cfg['LXC_PWD'] = menu.question("Set root password", "Please type in the containers root password", menu.qType.String,default='')
 | 
					 | 
				
			||||||
cfg['LXC_AUTHORIZED_KEY'] = menu.question ("Set authorized_keys file to import", "Please select authorized_keys file to import.", menu.qType.String, default='~/.ssh/authorized_keys')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
os.system('clear')
 | 
					 | 
				
			||||||
print (f"#### Zamba LXC Toolbox ####\n")
 | 
					 | 
				
			||||||
print (f"GLOBAL CONFIGURATION:")
 | 
					 | 
				
			||||||
print (f"\tct template storage:\t{cfg['LXC_TEMPLATE_STORAGE']}")
 | 
					 | 
				
			||||||
print (f"\nCONTAINER CONFIGURATION:")
 | 
					 | 
				
			||||||
print (f"\tzmb service:\t\t{cfg['ZMB_SERVICE']}")
 | 
					 | 
				
			||||||
print (f"\tcontainer id:\t\t{cfg['LXC_NBR']}")
 | 
					 | 
				
			||||||
print (f"\tunprivileged:\t\t{cfg['LXC_UNPRIVILEGED']}")
 | 
					 | 
				
			||||||
for feature in ct_features['features'].keys():
 | 
					 | 
				
			||||||
    if feature == 'nesting':
 | 
					 | 
				
			||||||
        cfg['LXC_NESTING'] = ct_features['features'][feature]
 | 
					 | 
				
			||||||
        print (f"\t{feature}:\t\t{cfg['LXC_NESTING']}")
 | 
					 | 
				
			||||||
print (f"\tcontainer memory:\t{cfg['LXC_MEM']} MB")
 | 
					 | 
				
			||||||
print (f"\tcontainer swap:\t\t{cfg['LXC_SWAP']} MB")
 | 
					 | 
				
			||||||
print (f"\tcontainer hostname:\t{cfg['LXC_HOSTNAME']}")
 | 
					 | 
				
			||||||
print (f"\tct search domain:\t{cfg['LXC_DOMAIN']}")
 | 
					 | 
				
			||||||
print (f"\tcontainer timezone\t{cfg['LXC_TIMEZONE']}")
 | 
					 | 
				
			||||||
print (f"\tcontainer language\t{cfg['LXC_LOCALE']}")
 | 
					 | 
				
			||||||
print (f"\nSTORAGE CONFIGURATION:")
 | 
					 | 
				
			||||||
print (f"\trootfs storage:\t\t{cfg['LXC_ROOTFS_STORAGE']}")
 | 
					 | 
				
			||||||
print (f"\trootfs size:\t\t{cfg['LXC_ROOTFS_SIZE']} GB")
 | 
					 | 
				
			||||||
if 'size' in ct_features['sharefs'].keys():
 | 
					 | 
				
			||||||
    print (f"\tsharefs storage:\t{cfg['LXC_SHAREFS_STORAGE']}")
 | 
					 | 
				
			||||||
    print (f"\tsharefs size:\t\t{cfg['LXC_SHAREFS_SIZE']} GB")
 | 
					 | 
				
			||||||
    print (f"\tsharefs mountpoint:\t{cfg['LXC_SHAREFS_MOUNTPOINT']}")
 | 
					 | 
				
			||||||
print (f"\nNETWORK CONFIGURATION:")
 | 
					 | 
				
			||||||
print (f"\tpve bridge:\t\t{cfg['LXC_BRIDGE']}")
 | 
					 | 
				
			||||||
if cfg['LXC_VLAN'] > 0:
 | 
					 | 
				
			||||||
    print (f"\tcontainer vlan:\t\t{cfg['LXC_VLAN']}")
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    print (f"\tcontainer vlan:\t\tuntagged")
 | 
					 | 
				
			||||||
print (f"\tnetwork mode:\t\t{cfg['LXC_NET_MODE']}")
 | 
					 | 
				
			||||||
if enable_dhcp == False:
 | 
					 | 
				
			||||||
    print (f"\tip address (CIDR):\t{cfg['LXC_IP']}")
 | 
					 | 
				
			||||||
    print (f"\tdefault gateway:\t{cfg['LXC_GW']}")
 | 
					 | 
				
			||||||
    print (f"\tdns server / forwarder:\t{cfg['LXC_GW']}")
 | 
					 | 
				
			||||||
print (f"\nCONTAINER CREDENTIALS:")
 | 
					 | 
				
			||||||
print (f"\troot password:\t\t{cfg['LXC_PWD']}")
 | 
					 | 
				
			||||||
print (f"\tauthorized ssh keys:\t{cfg['LXC_AUTHORIZED_KEY']}")
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user