A simple way to automatically install software on machines in a small network

The title says it all.

In my spare time I take care of machines in a small school—around 30 machines. It’s tedious to have to go from machine to machine doing installs of various things.

They have no money for fancy stuff, so I am looking for open source stuff that can do this.

The idea is that I would use an Ubuntu file server to host the installation files on a SMB volume, and somehow each machine would magically install stuff.


Are the workstations Windows machines?

If they are, you could use PsTools. PsExec lets you run commands on remote machines. You can feed it a list of target machines in a text file. With just 30 machines, you could keep them all in a file without too much trouble. Then, if you have a silent installer, you could execute the installer on the target machines from your machine. You write a command or bat file and kick it off when you want to push the installation. If you are logged in to your machine as a user with admin rights on the target machine, it should go smoothly. Takes a bit of fiddling, but it’s free.

I assumed Windows machines also. Being a linux guy, I was gonna mention (as a worst-case suggestion) using cygwin for its sshd capabilities, then setting up passwordless logins from a bash script, scheduled as a cron job.

Your suggestion is much better; I forgot about that package.

Are these machines part of a domain? Install programs often have command line switches. What you could do is create a specific domain ID which had local admin privs on the workstation. When you log in on the workstation as that user, it runs a batch file that checks for a flag file, and if the flag file isn’t present runs the install with appropriate command line options to automatically install and writes a flag file. Then it logs out or reboots the machine as necessary. Then you walk round each machine, logging in as this special user. If the installer is in .msi format you can create response files.

Thanks for the answers! This is exactly what I was looking for.

I think I will give PsExec a try, though I’m imagining that half of the machines will have issues and they simply won’t respond. It will be extremely cool if I can use this tool to do the job.

As a fallback, I’ll use the method described by Quartz. The machines are not part of a domain; however, I do have a special administrative account set up on all of them. I can set up that special account to run a short batch job on the Ubuntu SMB share.

Now I’m Googling how to use Ubuntu for a domain server.

These are all aging XP boxes, with a couple of Vista boxes scattered in the mix.

Couple of points to add: for Windows boxes to join a Domain they need to be running a Professional/Business edition which I assume they are, but thought it worthwhile mentioning. Secondly, rather than mix environments you’re better of running Windows Server as the Domain Controller as that is one of the functions it was designed for - using a Linux Domain Controller (if possible) is likely to cause you troubles through complexity. Also, it’s going to be much much easier to locate online help from official channels (i.e. MS) and a wide network of professionals for a Windows Server servicing Windows clients.

Finally, it is possible to easily remotely install software when you have a Domain Controller anyway, you can do it via Group Policy objects (GPOs).

If you have remote access VNC would work. You would be taking over the system to install the software but you can switch from system to system

Unfortunately, I am clueless about Windows servers, and the school has extremely little $$$ for these things.

I did a quick look on Amazon for Windows Server and found some Server 2003 and Server 2008 packages, but they all seemed to be very expensive (e.g. ~$500 or so for five client licenses).

This means that in order to manage the 30 computers in the school I would have to buy software that costs somewhere in the thousands, and that’s not counting the hardware itself.

Let me know if I am missing some obvious good solution here; I don’t necessarily want to go the Linux route for all the reasons you gave.

It doesn’t sound like it’s what you want or could afford for now but if you want a Windows server any time in the future then Windows SBS (Small Business Server) is probably the way to go.

I’m in a similar situation also being the volunteer IT person at a small private elementary school. This is for the school office / administration with only about 12 machines. Maybe you’re doing stuff that students use.

We got SBS 2003 a couple of years ago with a pretty good deal from Dell for hardware and software. You’re right, it’s about $500 per five client access license. It comes with five “free” licenses but it sure adds up after that. Having a domain makes management easier. SBS comes with Exchange and SharePoint. If they weren’t so hooked on Exchange and Outlook I would have tried to go for a Linux / Samba / IMAP server and use Thunderbird for mail but nobody wants to entertain the thought of giving up Outlook with it’s integrated calendar etc.

Take a look at AppSnap or WPKG. Both will let you use a samba server - my vote (as always) is for SME Server, but Ubuntu server sounds fine. I’ve used AppSnap to maintain a couple of machines manually, but you could use it with PSExec (another great tool), and it works well.

Even if you don’t use them, WPKG has unattended installs that you can use. Just a note, PSExec executes applications in a non-interactive context, so access to network resources available from the console session is not a given - you may need to spend some time working out how to ensure your PSExec session can get to the files (I do corporate software distribution for a living - execution context can be a real issue).


[mild hijack]What tools/apps do you use for this?[/mh]

Currently HP Openview Radia, I’ve used SMS, and I have packaged with all the major toolsets (Zen back in the day, Wise, Installshield, Radia Packager/Refwi).

I’ve also written custom scripts for remote software installation.


Thanks, si_blakely, I looked at AppSnap and WPKG, and they both seem like what I’m looking for. I know I’ll never be able to deploy apps like they do at my corporate day job, but I’ll make do with what’s available.

I think I’ll give that SME Server you’re hawkin’ a try for the Linux side of things. I’m familiar enough with Linux that Ubuntu Server would do just fine, but I kind of like all-in-one web-driven products that take away the hassle.

BTW, for the router I was looking for a month ago, I finally settled on this Soekris box running an embedded version of m0n0wall or pfSense. For that device I’m looking for rock solid dependability, no fans and no hard drive.

Interesting. I used to do a little work with SMS years ago, but haven’t looked at it in ages. I played around with Openview back in the day too (but didn’t use it for anything real), and it seemed pretty decent too.