I had heard about this situation before when I was talking with someone, when I was in St. Louis on the "birthday" of my website. I wonder if it was you.
In any case, I used the web deployment tool (MSDeploy) for this . MSDeploy is more like a synchronization tool, and then everything else. The concept is that you have a source and dest, you want to synchronize them. If you are doing a typical push deployment, your assembly server will synchronize the output of some assembly with each target server. If you want to perform a pull deployment, simply drop the files you want into a shared location (you invoke this main server), then your client computer can synchronize itself with this main server.
Here are some more details that you mentioned in your question:
Deploying files to the core server The build server can use MSDeploy to deploy files to the core server.
The child server will check to see if the host has an update in a given amount of time or time. There is no direct support, but there are two things. One thing: you can run MSDeploy from a script (.cmd / PowerShell / MSBuild / etc), and it can determine if there is a newer version. I would do this by dropping the version file at the top level of your output folder. Then, when your script runs, just read which version is on the server. If a newer version is available, open a new new deployment. The second thing: MSDeploy supports incremental deployment, so even if you start a new deployment, it just won't make any changes. It's tricky when you start talking about database deployment, although in your case it’s probably not recommended, I would go with some taste of Thing one.
If the main server contains the update, it will download the update and / or execute the script. This is what msdeploy.exe is going to do for you.
Other related items
- Incremental publishing: if your website contains 1000 files, but only 5 are modified, then only those that have been deployed
- Configuration: MSDeploy supports parameterization, so when a client starts synchronization, you can specify specific values for this client. With their help, you can change all types of files, including web.conig / .xml / text files, etc. You can even customize your IIS settings.
- Authentication You can use regular auth windows, if you use IIS 7, you can create WMSvc and use them.
- Security: WMSvc can be used for this.
Does this fit your needs?
source share