Forum OpenACS Q&A: ANN: Oasis: OpenACS/VMWare no-install, downloadable distro

I'm releasing another OpenACS project I've had gathering dust for a little while. I've created a VMWare virtual machine containing a complete OpenACS development environment. It's available for download using BitTorrent ( a swarming p2p download client that makes diseconomic large binary distribution less so) at Musea's web site. Please note that the previous link only works if you've got the BitTorrent client installed. BT works very well in IE, and will work on other platforms with the correct mime-mapping setup. For those of you behind restrictive firewalls, drop me a line and I'll provide an HTTP link. I didn't do this initially in an effort to keep the bandwidth overhead low. If anyone is interested in providing a permanent HTTP home for this project, or joining the existing BT swarm, do contact me.

Motivation

From reading the threads, it seems like a number of coders (DonB, Lars, etc) are also using VMWare to do their OpenACS development on Windows laptops. I thought it might be valuable to provide the platform this way for people just diving in. I wrote up whitepaper on why I think this is a promising way to distribute OpenACS. Looking at the bboards, it's painfully clear allowing new users to develop on the OpenACS platform without subjecting them to installing it could really advance the cause.

For fun, a made a slide show (~500K) to demonstrate the ease of installation. Okay, I probably had too much time on my hands when I made that, but it looks cool.

I'm not sysadmin, so any suggestions on how to make it leaner and meaner without compromising pedagogical value are appreciated. Those in the know can check out the kickstart file and let me know if you see anything large that shouldn't be there.

Many, many thanks to Musea for hosting this. They rock.

Other Links

  • Installation instructions

    (thanks to paul graham and the other patient beta testers for help with this.)

  • This is pretty cool, John!  Actually ... I've used VMWare to run Windows on my Linux machine, not vice-versa but I know Lars does it the other way around and I know your virtual machine would be an ultra-easy way to get things up and running.
    Maybe unrelated (except for the "virtual" machine stuff)... another neat development tool is to use user-mode linux (UML) to run a development sandbox (from within linux only, though). It has almost all the neat stuff that vmware has: virtual networking and virtual (and undoable)disks, which, like vmware, can be a file on your filesystem. You can allocate whatever amount of memory to your virtual machine you want, even more than your physical memory! (but of course, you machine will swap a lot). You can also have multiple virtual disks, and multiple virtual ethernet devices. Backing up is as simple as copying the virtual disk (if a file).

    Now if you are already running linux, why would you do this?

    • Kind of cool to think of your puny machine as a mainframe 😉
    • If you "freeze" a copy of your virtual disks to a state when you have a fresh install of OpenACS4, and use what UML calls "cow" files, it is easy to start over if you messed up somehow. Of course your postgres should also be running on the virtual machine so that the database is in a consistent state at the time of the "freeze". This mimics what John is suggesting with his ready-made vmware disk images, which, for maximum benefit, should be configured as "undoable" in vmware.
    • If you are running Debian, you can run Redhat linux on your virtual machine and enjoy the openacs rpm goodies. In fact, you can run whatever distro you want on the virtual machine, and still keep the distro you prefer running on your physical machine. For debian users, this is a great way to play with the unstable branch (although for OpenACS4 purposes, "testing" is just fine).
    • I'm not sure of the performance in production systems, but you can run your OpenACS4 site on a virtal machine and enjoy the peace of mind of a "jailed" aolserver and postgres, without actually configuring both in jailed mode. I think it would be foolish to try running Oracle in the virtual machine, though...
    User-mode linux is free (gpl-ed), unlike vmware. However, it won't run on windows. Configuration is not as straightforward as vmware, but the UML website has all the info you need. Or email me.
    Jowell,

    Not unrelated at all - I love the idea of UML. I haven't used it yet, but I've read about it, and link to it in my whitepaper. I struggled a bit to come up with reasons a linux-savvy person would want to do something like this, but you've hit on a bunch.

    When I started developing my first major ACS site, I installed Oracle on VMWare (W2K guest on W2K host) for development. This worked out to be a great idea because:

  • I could run my DDL -create.sql scripts and some SQL unit tests, then hit UNDO to roll back the state of the Oracle DB. As an Oracle newbie, this was vastly simpler than figuring out backup and rollback commands, and because it included rollback of any filesystem-created artifacts, more complete.

  • When it came time to add a member to the development team, I cut and paste the VM from my desktop to my new team-mates. Instant ACS/Oracle install that he or she could run through the problem sets with.

  • Uninstalling Oracle was (is?) nearly impossible - so many registry entries, config files and associated utitilities are installed. I prefer to just delete a file and say goodbye to Oracle, or disable a VM, as opposed to trying to figure out how to disable all the services when it comes time to work on a different project.

    Regarding running it in production, VMWare and SWSoft both have server-based products for doing just that.

    From news.com

    "SWsoft announced this week that in a test the forthcoming version 2.1 of its Virtuozzo software was able to support more than 2,000 copies of the Linux operating system on a single eight- processor Intel-based server, the Dell 8450."
    The project I'm currently on is going to be purchasing the VMWare server edition. We have a team of 10 people, and we'll be able to give all of them their own undoable web-server/database cluster for testing and development, plus have a test cluster for QA and a staging cluster on one box. To keep all these clusters in sync, we'll have to copy a bunch of files everyday, then maybe write a perl script to give them new network ID's/IP addresses.

    We wouldn't have done it this way without VMWare - we'd all share boxes and keep them in sync manually. But this way everyone can run their unit tests at the same time and not interfere with everyone else.

    Using VMWare in this fashion should make server configuration ridiculously simple, and speed up our development process quite a bit.

  • John, I got this running-  and it's great!  VMWare is a revelation.  What you just mentioned about Oracle really has me thinking.  Anyway, thanks for a great product!

    I'm having a couple of problems, though.  I don't know how to connect to the net with the VM.  It's running on a Win2K laptop, which is connected to a cable modem via ethernet and DHCP.  eth0 fails while Linux boots, probably since it's already being used by Windows.  Is there a way I can get the Redhat VM to connect, preferably through the Windows connection?  Can I access the Linux server with my Windows browser?

    I never did get BitTorrent to work-  Adelphia may very well have it blocked, especially here around VTech.

    OK, I did get the NAT networking going, but not the bridged.  So I can connect to the net from my VM, but I can't reach it from Win2K.  I should probably be following this up a VMWare forum, and I will from now on, unless anyone here has a few hints for me!
    Matt,

    I'm confused.  The VM has network connectivity (you can type 'lynx http://openacs.org'; at the command line and get what you expect?) ,  but not your host W2K machine?  I've never seen VMWare alter your working host network settings.  Does W2K connectivity die when you start the VM?

    I think he means he can't talk to the Linux instance from Win2K?

    What I've always done is to set up one bridged virtual NIC so my guest OS can talk to the real world, and another standard virtual NIC so my guest OS can talk to the host OS.

    I've not had a problem with that, but you must remember to set up two virtual NICs to do this, just as you would with phyical NICs.

    Oh - I did misunderstand.

    Every network config is different.  On my home lan,  I've got a  gateway appliance sitting in front of my cablemodem running NAT and DHCP.  This means if my VMWare instance can connect to the gateway,  I'm on the LAN just like any other machine I have at home and can connect to anywhere inside the lan and on the internet as well.

    Bridged *should* mean that you can talk to both the host and the outside world if you've got a separate gateway running NAT as I do.  The way Don describes it,  it sounds like his bridged connection is  operating the way Host-Only is supposed to (connecting only to the host and nowhere else).  The VMWare doc's don't suggest that both are necessary,  but it wouldn't surprise me that sometimes it is.

    One important thing:  I've noticed in some 2.0 releases of VMWare that the bridged networking adapter service would not automatically start in W2K or would occasionally die.  That's been the most likely cause of my connectivity woes.  Use Control Panel->Administrative Tools->Services to lookup and restart the VMWare bridged network adapter service.  Then try pinging the host from within the VM.

    If you're on 3.0 then it's probably something else (try Don's suggestion and/or hit the support groups)

    Yup, I get it too.  For the bridged connection to work, the guest needs a DHCP address from the same DHCP server as the host.  Your gateway can dole out an address to each.  In my case, Adelphia will only give me one address- already assigned to my host OS.

    I still can't get the host-only connection to work.  I can ping the VM from Windows, but I can't establish an http connection.  I'm still combing through the docs...

    By any chance, John, have you updated your VMWare virtual
    machine to use the new OpenACS beta?

    Thanks.

    Michael,

    The short answer is no,  not yet.  The longer (weaker) answer is that it's got CVS installed and IIRC a shell script to grab the latest snapshot.  But admittedly those kind of installation steps aren't really the point of the distribution,  right?

    I'm going on vacation next week.  I should be able to put Oacs4.5 together after that.

    Thanks, John. I really appreciate what you're doing here.