From 195ec12e4483333909a2e3a5a06205284d6851e9 Mon Sep 17 00:00:00 2001 From: James Meyer Date: Wed, 29 Aug 2012 13:46:37 -0500 Subject: LinHES-config: fix vnc installs not stopping the network. fixed parsing of ip address mv_config: changed location of myth home dir mv_install: fixed running of adding storage and also gave it the ability to read a conf file instead of parsing lines. --- abs/core/LinHES-config/install_proxy.sh | 3 +- abs/core/LinHES-config/mv_config.py | 4 +- abs/core/LinHES-config/mv_install.py | 216 ++++++++++++++++++-------------- abs/core/LinHES-config/networkconfig.sh | 6 +- 4 files changed, 131 insertions(+), 98 deletions(-) diff --git a/abs/core/LinHES-config/install_proxy.sh b/abs/core/LinHES-config/install_proxy.sh index d68dfc9..53d48c9 100755 --- a/abs/core/LinHES-config/install_proxy.sh +++ b/abs/core/LinHES-config/install_proxy.sh @@ -77,7 +77,8 @@ case $1 in ;; check_self) - myipdefault=`ifconfig | grep -C1 $default_interface| grep -v $default_interface | cut -d: -f2 | awk '{ print $1}'` + #myipdefault=`ifconfig | grep -C1 $default_interface| grep -v $default_interface | cut -d: -f2 | awk '{ print $1}'` + myipdefault=`ip addr show $default_interface| grep inet |grep -v inet6 | cut -d/ -f1 | awk '{ print $2}'` echo "network check myself" ifconfig ping -c 1 $myipdefault diff --git a/abs/core/LinHES-config/mv_config.py b/abs/core/LinHES-config/mv_config.py index 4b9b2f3..af57b8e 100755 --- a/abs/core/LinHES-config/mv_config.py +++ b/abs/core/LinHES-config/mv_config.py @@ -3,7 +3,9 @@ SYSTEMTYPE="LinHES" MVHOSTNAME="apheleia" MOUNTPOINT="/new_boot" DATAMOUNT="/myth" -MYTHHOME="/home/mythtv" + +MYTHHOME="/storage/data/home/mythtv" + VNCHOME="/home/vncsvc" SQUASHFILE="/tmp/.squashlist" SQUASHLIST=("bin","boot","etc","home","lib","opt","root","sbin","usr","var","data","service") diff --git a/abs/core/LinHES-config/mv_install.py b/abs/core/LinHES-config/mv_install.py index 1cb341f..00251e6 100755 --- a/abs/core/LinHES-config/mv_install.py +++ b/abs/core/LinHES-config/mv_install.py @@ -12,6 +12,20 @@ except: def usage(): print "help text:" print "example usage: --rootdisk=sda --rootfs=ext4 --rootsize=34240 --datafs=ext4 --datasize=3400 --datadisk=sda --swapsize=340 -c full_install" + print "" + print "Alt usage involves reading config from a file" + print "The conf file is read when no command line options are given" + print " /etc/systemconfig must also be present " + + print "Create /tmp/install_conf, with contents similiar to this. Sizes are in MB" + print " rootdisk=sda" + print " rootfs=ext4" + print " rootsize=5000" + print " datafs=reiserfs" + print " datasize=ALL" + print " datadisk=sda" + print " swapsize=200" + print " op=full_install" def clean_upgrade(): return False @@ -205,7 +219,7 @@ def mysqldb(cmd, inchroot): elif cmd == "stop": mycmd = " /etc/rc.d/mysqld stop" if inchroot == "chroot": - mycmd = " chroot /newboot %s" %mycmd + mycmd = " chroot /new_boot %s" %mycmd runcmd(mycmd) @@ -362,7 +376,14 @@ def partition_disk(): time.sleep(5) def fscmd(fstype): - fscmds = {"reiserfs":"mkreiserfs -q -l ROOT", "xfs": "mkfs -t xfs -f", "ext3": "mkfs.ext3", "jfs":"mkfs.jfs -q", "ext4":"mkfs.ext4", "Do_not_format":"noformat", "no_format":"noformat"} + fscmds = {"reiserfs":"mkreiserfs -q -l ROOT", + "xfs": "mkfs -t xfs -f", + "ext3": "mkfs.ext3", + "jfs":"mkfs.jfs -q", + "ext4":"mkfs.ext4", + "Do_not_format":"noformat", + "no_format":"noformat", + "btrfs":"mkfs.btrfs"} try: rc = fscmds[fstype] except: @@ -623,7 +644,8 @@ def copy_it(install_type): # Create the missing dir - i = ("sys", "proc", "dev", "tmp", "mnt", "media", "media/cdrom", "media/dvd", "var/log/mythtv", "var/lock", "var/tmp", "usr/lib/locale") + #i = ("sys", "proc", "dev", "tmp", "mnt", "media", "media/cdrom", "media/dvd", "var/log/mythtv", "var/lock", "var/tmp", "usr/lib/locale") + i = ("sys", "proc", "dev", "tmp", "mnt", "media", "media/cdrom", "media/dvd", "var/lock", "var/tmp", "usr/lib/locale") mountpoint = data_config.MOUNTPOINT for item in i: try: @@ -925,65 +947,22 @@ def grub_it(): cmd="chroot %s grub-mkconfig -o /boot/grub/grub.cfg" %data_config.MOUNTPOINT runcmd(cmd) +def double_mount(): + cmd = "mkdir %s/run/dbus" %data_config.MOUNTPOINT + runcmd(cmd) -def grub_it1(): - logging.info("______Start of grub install______") - cmd = " grub-install --recheck --no-floppy --root-directory=%s \"(hd0)\" " % data_config.MOUNTPOINT - logging.info("Running grub-install") + cmd = " mount --bind /run/dbus %s/run/dbus" %data_config.MOUNTPOINT runcmd(cmd) - rootuuid = find_uuid(hostoptions["rootpartition"]) - cmd = " mkinitcpio -b %s -g %s/boot/kernel26.img" %(data_config.MOUNTPOINT, data_config.MOUNTPOINT) - cmd = " mkinitcpio -g %s/boot/initramfs-linux.img" %(data_config.MOUNTPOINT) - logging.info("Running mkinitcpio") + + #cmd = "chroot " + data_config.MOUNTPOINT +" /usr/LH/bin/add_storage.py --double_myth --install_call --no_mount" + cmd = "chroot " + data_config.MOUNTPOINT +" /usr/LH/bin/add_storage.py --double_myth --no_mount" runcmd(cmd) - logging.info("Adding root uuid to grub menu") - grubfile = data_config.MOUNTPOINT+"/boot/grub/menu.lst" - try: - f = open(grubfile, 'r') - oldgrub = f.readlines() - newgrub = [] - f.close() - for line in oldgrub: - if line.startswith("kernel"): - templine = line.split() - logging.debug(" Found kernel Root grubline:") - logging.debug( templine) - templine[2] = "root=/dev/disk/by-uuid/%s" %(rootuuid) - templine[1] = "/boot/vmlinuz-linux" - newline = '' - for i in templine: - newline+=i - newline+=" " - newline+="\n" - logging.debug(" New grub menu.lst line:") - logging.debug( newline) - newgrub.append(newline) - elif line.startswith("initrd"): - templine = line.split() - logging.debug(" Found initrd grubline:") - logging.debug( templine) - templine[1] = "/boot/initramfs-linux.img" - newline = '' - for i in templine: - newline+=i - newline+=" " - newline+="\n" - logging.debug(" New grub menu.lst line:") - logging.debug( newline) - newgrub.append(newline) - else: - logging.debug("Line didn't match, adding to newgrub:") - logging.debug( line) - newgrub.append( line) - logging.info("Writing out new grub file") - logging.debug("______This is the new grub_____") - f = open(grubfile, 'w') - for line in newgrub: - logging.debug(line) - f.write(line) - f.close() - except: - logging.debug("Couldn't open grub file") + + + cmd = " umount %s/run/dbus" %data_config.MOUNTPOINT + runcmd(cmd) + + def genlocale(): return @@ -1344,6 +1323,7 @@ def full_install(hostoptions): progress(98) mount_bind_chroot() grub_it() + # double_mount() umount_bind_chroot() genlocale() @@ -1383,7 +1363,9 @@ def full_install(hostoptions): rc = runcmd(cmd)[0] if rc != 0 : error_out("Running systemconfig") - + mysqldb("start","chroot") + double_mount() + # sys.exit(3) mysqldb("stop", "chroot") kill_dhcp_chroot() logging.info("____End Database in CHROOT____") @@ -1394,6 +1376,7 @@ def full_install(hostoptions): mount_bind_chroot() cmd = "chroot %s DISPLAY=127.0.0.1:0 %s/bin/MythVantage -t restore, default 1" %(data_config.MOUNTPOINT, MVROOT) runcmd(cmd) + double_mount() # Need to check for to touch /tmp/.dbsysfailed #cmd = " chroot %s %s/bin/myth_settings_wrapper.sh -c restore -t syssettings " %(data_config.MOUNTPOINT, MVROOT) #runcmd(cmd) @@ -1690,43 +1673,65 @@ def upgrade(hostoptions): def main(argv): + print install_conf global hostoptions - try: - opts, args = getopt.getopt(argv, 'c:h', ["help", "rootdisk=", "rootfs=", "rootsize=", "datafs=", "datasize=", "datadisk=", "swapsize=", "datapartition=" ] ) - except getopt.GetoptError, why: - print why - usage() - sys.exit(2) - hostoptions = {"op": 'null'} - for opt, arg in opts: - if opt in ("-h", "--help"): + hostoptions = {} + conflist=["rootdisk","rootfs","rootsize", + "datafs","datasize","datadisk","datapartition", + "swapsize","op"] + + for i in conflist: + try: + hostoptions[i] = install_conf[i] + except: + pass + + + + + if len(hostoptions) < 1: + try: + opts, args = getopt.getopt(argv, 'c:h', ["help", "rootdisk=", "rootfs=", "rootsize=", "datafs=", "datasize=", "datadisk=", "swapsize=", "datapartition=" ] ) + except getopt.GetoptError, why: + print why usage() - sys.exit(0) - elif opt in ( "--rootdisk"): - hostoptions["rootdisk"] = arg - hostoptions["rootpartition"] = arg+str(1) - elif opt in ("--rootfs"): - hostoptions["rootfs"] = arg - elif opt in ("--rootsize"): - hostoptions["rootsize"] = arg - elif opt in ("--datafs"): - hostoptions["datafs"] = arg - elif opt in ("--datasize"): - hostoptions["datasize"] = arg - elif opt in ("--datadisk"): - hostoptions["datadisk"] = arg - elif opt in ("--datapartition"): - hostoptions["datapartition"] = arg - elif opt in ("--swapsize"): - hostoptions["swapsize"] = arg - - elif opt in ("-c"): - validop = ["full_install", "upgrade", "netboot", "find_upgrade"] - if arg not in validop: - logging.critical("-c %s is not a valid option", arg) - sys.exit(2) - else: - hostoptions["op"] = arg + sys.exit(2) + hostoptions = {"op": 'null'} + for opt, arg in opts: + if opt in ("-h", "--help"): + usage() + sys.exit(0) + elif opt in ( "--rootdisk"): + hostoptions["rootdisk"] = arg + hostoptions["rootpartition"] = arg+str(1) + elif opt in ("--rootfs"): + hostoptions["rootfs"] = arg + elif opt in ("--rootsize"): + hostoptions["rootsize"] = arg + elif opt in ("--datafs"): + hostoptions["datafs"] = arg + elif opt in ("--datasize"): + hostoptions["datasize"] = arg + elif opt in ("--datadisk"): + hostoptions["datadisk"] = arg + elif opt in ("--datapartition"): + hostoptions["datapartition"] = arg + elif opt in ("--swapsize"): + hostoptions["swapsize"] = arg + + elif opt in ("-c"): + validop = ["full_install", "upgrade", "netboot", "find_upgrade"] + if arg not in validop: + logging.critical("-c %s is not a valid option", arg) + sys.exit(2) + else: + hostoptions["op"] = arg + + validop = ["full_install", "upgrade", "netboot", "find_upgrade"] + if hostoptions["op"] not in validop: + logging.critical("-c %s is not a valid option", hostoptions["op"]) + sys.exit(2) + try: hostoptions["datadisk"] except: @@ -1793,6 +1798,27 @@ for line in config_file: val = val.strip('"') systemconfig[var.strip()] = val.strip() +#Read in install_conf +global install_conf +install_conf = {} +file_name = "/tmp/install_conf" +try: + config_file = open(file_name) +except: + logging.debug("%s could not be opened", file_name) + config_file = '' + +for line in config_file: + line = line.strip() + if line and line[0] is not "#" and line[-1] is not "=": + var, val = line.rsplit("=", 1) + val = val.strip('"') + install_conf[var.strip()] = val.strip() + + + + + if __name__ == "__main__": config_file = "mv_config" diff --git a/abs/core/LinHES-config/networkconfig.sh b/abs/core/LinHES-config/networkconfig.sh index 770aa98..b044f20 100644 --- a/abs/core/LinHES-config/networkconfig.sh +++ b/abs/core/LinHES-config/networkconfig.sh @@ -206,7 +206,11 @@ function setup_interfaces() { function find_active () { #HostActiveeth1="1" -rm -f ${BASE}/etc/resolv.conf +if [ ! x$USEVNC = x0 ] +then + rm -f ${BASE}/etc/resolv.conf +fi + if [ x$MYTHDHCP = x1 ] then #add 127.0.0.1 to /etc/resolv.conf -- cgit v0.12