I'm looking for a way to setup pull deployment as apposed to the traditional push deployment model under Windows.
The optimal situation would be:
- Deploy the file(s) to the master server
- The child server would check to see if the master had an update at a given time or time interval.
- If the master server contains an update, then it would download the update and/or execute a script (something like nant?)
The solution needs to be as light weight as possible and must run under a Windows environment.
I've taken a look at Chef and SmartFrog but are not suited for this particular situation.
Edit: There are multiple pieces of software being deployed. These are database scripts, windows services and a web site. Each child will have it's own unique script as it's requirements and authentication details are different from the rest.
Edit 2: So far people have come up with great answers but the end solution really does need to be secure, run internally and all happen at the same time. This is due to compliancing, industry regulations and version issues (eg. db server out of sync with services). The end solution that I have in mind would be something like an FPT server on the master and Nant running on the children to execute the install routines (starting, stopping services, installing sql scripts, logging installs). This is the closest thing currently available, but is not ideal as nant works on a push basis (only executes when someone or program, eg. cruisecontrol, runs the script). I'm sure there has to be a solution to do a proper PULL deployment for Windows. Windows update and APT on Linux are great examples of pull deployment if you could do the the deployment across multiple servers all at the same time.