October 10, 200817 yr Im pondering why we cant make unRAID upgrade itself now. Since most/some/all? users have internet access from their unRAID boxes since the time feature was added and upgrading unRAID is just a matter of grabbing a copy and pasting... surely a simple bash script with the inclusion of an md5 could be devised? We can add some sanity questions and some safety measures but in theory it would be quite simple. Opinions?
October 10, 200817 yr To do it at a scrpt level needs curl, wget or ctorrent and unzip. So it all depends on if they part of the standard distribution. If there was a standard release file in etc such as /etc/unraid-release then we could even automate a versioned update to the syslinux.cfg. I suppose it's possible to save the current version by using the output of uname, but I'm in favor of a standard version file
October 10, 200817 yr I have been working on an on-line update for unMenu and BubbaRaid. I have it working in BubbaRaid-0.0.6-Beta, and I am porting it to unMenu. Lack of wget or curl is a hurdle, but after a lot of experimenting, I have a way to download a package file with awk. It would be better if there were some server hooks on the server serving up the unRAID download (i.e. MD5 and a single URL to lookup filenames) Stay tuned..... It will be ready in a day or so.
October 11, 200817 yr Attached is unraid-upgrade-script.zip Unzip it to a directory on your unRAID system (it contains two files) and run: ./upgrade-unraid.sh It will give you a list of available downloads, and prompt you to download and install. Consider this an UNTESTED BETA release....although I've tested it several times, and it works OK from here. But please do not use it on an important or production server until some others have had a chance to test it and report back. All of you brave enough to try it, please post your experiences with it. It is a combination of bash and awk.... it could probably be written all in awk, but I was too tired to do it.... and it was easier (for me) to do the interface stuff in bash.
October 11, 200817 yr Author Rather impressive. Couple of questions. Since to use this script you have to download this script why dot you just include curl or wget as well in the initial download. These are far more robust down loaders that can survive all sorts of transient problems. Im not sure why but it caused my entire array to spin up. Is this intentional? "Your unRAID version appears to be: UNKNOWN". << is this supposed to work. Superb work btw. Very very nice. Added to addon repository: http::/unraid.yi.org
October 11, 200817 yr Since to use this script you have to download this script why dot you just include curl or wget as well in the initial download. These are far more robust down loaders that can survive all sorts of transient problems. For simplicity.... eventually, I'll port the whole thing to awk, so it is just one script. Plus, this whole thing started as a plugin for unMenu, and it still will work that way. Im not sure why but it caused my entire array to spin up. Is this intentional? Yes - for 2 reasons. One, is there has to be a sync call from the awk script to flush the download, or the install won't work. Second, you should NOT be doing this with the array started, and you have to reboot when finished.... so a spinup will have to happen anyway. "Your unRAID version appears to be: UNKNOWN". << is this supposed to work. Yes, won't affect anything. I wanted to be able to tell if no upgrade is needed, and so inform the user.... it is just informational. I'll work on it some more today and get a new version ready.... if you look in the script, there are several "todo" notes. I just wanted to get it posted ASAP, since I know a number of people "play" with stuff like this on weekends, and not during the week.
October 11, 200817 yr And one other thing... since the script has to have access to the Internet to get the list of options and to download the update, we can assume that unzip can also be downloaded.
October 11, 200817 yr I may be able to eliminate the sync commands during the download process, by using fflush in the awk bootstrap... but the final sync before shutdown is really important for safety.
October 11, 200817 yr OK, here is a 100% pure awk version.... 310 lines of code. Unzip it to any place on your unRAID box, and run it with the command: awk -f unraid-upgrade.awk This version adds an integrity check on the unRAID zip file, and prettys up the interface (ANSI colors even) When you run it, it displays a message and downloads some necessary files... then it will give you choices: These versions of unRAID are available for download: 1) unRAID Server 4.2.4.zip 2) unRAID Server 4.3.2.zip 3) unRAID Server 4.3.3.zip 4) unRAID Server 4.4-beta2.zip X) -cancel upgrade- Select: x What choices are available depends on what is available for download at that time.... so as new versions are added by Tom, the options you see will automatically change. Select the version you want, and it will download it, and check the zipfile integrity. Then you have to confirm installation: *********************************** * Please make sure that your * * unRAID array is stopped and * * all your files are closed. * * * * All the disks will spin up * * as we flush all data. * * * * You will have to reboot * * this server when the * * the upgrade is completed. * *********************************** Type YES to continue with upgrade: Type "YES" and press enter, and the upgrade will be applied. Then you need to reboot. That's it!
October 11, 200817 yr Author Added to addon repository: http::/unraid.yi.org Looking extremely good. Can i suggest we start bundling these precursor necessary files in some way so that they can be pre and permanently installed so that everyone can say "you will need the unRAID base addon package to use this script"... rather than us all looking at these pre-requisites separately. Sure if there are some weird dependencies they will be bespoke to a script but if you need say wget its safe to say other will need that to.
October 11, 200817 yr There are no prerequsites for this script. It will bootstrap anything it needs but can't find locally. Rather than a bundle, I'd suggest that applications should be able to solve dependencies, particularly simple ones, on their own.
October 11, 200817 yr I add "unraid-upgrade.awk" between other *.awk files on USB flash. From command prompt "awk - f..." execute awk file and upgrade working. But in UnMenu through web interface UnMenu is not see any link to upgrade process. Can I run upgrade process from UnMenu ?
October 11, 200817 yr Author That is a superior if not more complicated solution. All im suggesting is a simple "install this set of tools" everyone can not only take advantage of but also know users will have. Think it of it as the "tools unRAID doesnt have but should".
October 11, 200817 yr But in UnMenu through web interface UnMenu is not see any link to upgrade process. @Ropo: This is not an unMenu plugin. A separate plugin for unMenu will come later. That is a superior if not more complicated solution. All im suggesting is a simple "install this set of tools" everyone can not only take advantage of but also know users will have. Think it of it as the "tools unRAID doesnt have but should". @NAS: That would be nice, but as a developer, the SUREST way to create problems for yourself and users is to assume someone has something they don't. Until wget comes standard as stock on unRAID, I'll assume it is there in a script. Even after it is in the stock unRAID, scripts will still have to handle it not being there since some people don't upgrade for a long time. I admit I was surprised when I found out the stock unRAID doesn't have wget, or even something as basic as an ftp or tftp client.... but then again, that just made me work harder to find a way to do it without them. I'd like to see just a few more basic tools in the stock unRAID, or at least an "unRAID-Plus" that would be a base for building an application platform. That would be something between stock unRAID and the full BubbaRaid.
October 11, 200817 yr I'd like to see just a few more basic tools in the stock unRAID I posted a topic to gather this type of information so we can present it to Tom. wget or curl (I think with curl you can push a file). There are times when I really miss having a basic ftp client to do things I also think unzip is a much needed tool. http://lime-technology.com/forum/index.php?topic=2503.0 What else should we lobby for?
October 12, 200817 yr Wow...things are really whizzing along with some of the cool new feature thingees coming out. Will there be a possibility to "Rollback" to a previous version should the upgrade go south, or a bug is discovered? I am assuming this upgrade process won't take place automatically, but is instigated manually?
October 12, 200817 yr This script does not modify any configuration files or other scripts. It only updates the unraid kernel and initramfs. There is no "rollback" but you can chose an older version and "upgrade" backwards.... say from the 4.4-Beta back to 4.3.3. The only hiccup would be if the new version broke your network capabilities... then you are back to upgrading (or downgrading) via the traditional method.
October 12, 200817 yr Author .... The only hiccup would be if the new version broke your network capabilities... then you are back to upgrading (or downgrading) via the traditional method. Unless we cache the zip file which we should probably do anyway (or at least give an option to)
October 12, 200817 yr Caching the zip would not help.... all you could do is reapply it.... and if the new version broke your network, reapplying it won't help. I can put an "undo" function in it, so the upgrade would save the old kernel and initramfs, and the "undo" could put them back.
October 12, 200817 yr Caching the zip would not help.... all you could do is reapply it.... and if the new version broke your network, reapplying it won't help. I can put an "undo" function in it, so the upgrade would save the old kernel and initramfs, and the "undo" could put them back. You could add a few lines to the syslinux.cfg to boot the older version as an alternate menu choice. (or, copy it to an alternate name before you add the additional choice, that way, renaming one file would let you boot the older version.) Joe L.
October 12, 200817 yr Author Caching the zip would not help.... all you could do is reapply it.... and if the new version broke your network, reapplying it won't help. I can put an "undo" function in it, so the upgrade would save the old kernel and initramfs, and the "undo" could put them back. you would have to donwload the current version before you upgrade. Quite a sensible approach anyway. Caching the zip would not help.... all you could do is reapply it.... and if the new version broke your network, reapplying it won't help. I can put an "undo" function in it, so the upgrade would save the old kernel and initramfs, and the "undo" could put them back. You could add a few lines to the syslinux.cfg to boot the older version as an alternate menu choice. (or, copy it to an alternate name before you add the additional choice, that way, renaming one file would let you boot the older version.) Joe L. Thats a superior solution. Most people have most of their flash drive empty anyway. Even if you upgrade and all seems ok it might take you a couple of week to locate a bug that is specific for you or if a serious bug is found you will want to immediately revert.
October 12, 200817 yr I thought about modifying the syslinux.cfg, but that's fraught with peril since some people have modified them. ... it will be safer to just append an "include" statement to it. I'm going to keep one generation of backups, called "Previous version of unRAID" in the menu and include an undo function in the upgrade script. I'll copy the bzroot and bzimage to .old extensions. I'll also improve the detection code so it can identify which version of unRAID it is.
October 12, 200817 yr Here is version 1.1.0 of the unraid-upgrade awk script. # Version 1.1.0 - BubbaQ Oct. 12, 2008 # - added undo capability # - improved version detection # - added zip file verify
Archived
This topic is now archived and is closed to further replies.