I am trying to find a tool that will help us do our ASP.NET/IIS7 website deployment on to multiple machines.
We have a parallel production environment where we first deploy our software after the usual QA is done. This deployment is done via the provided msi (msi does not change the configurations). A deployment readme file is provided which instructs how to update configuration (if any). Once we feel that there are no hiccups in the new version, we copy the website to multiple (around 5 now, but might increase) production servers. The configuration files are not completely copied, but rather updated based on the changed settings and readme instructions.
Currently this copying process is done manually. I am looking for a tool that can do this copying for us without modifying any configuration files, so the operators can focus on only updating the config files.
Some interesting aspects of the issue
- All the files of interest are within a specific website root-folder. It contains multiple sub-folders, config files, dlls, exes, javascripts, and other asp.net files
- File-system on all the servers can be accessed in a read/write way using file shares
- The website root folder is not always at the same path across all servers
- Writing a simple copy has the problem that it will overwrite the config files too. We could not find an easy way to exclude the config files.
- The tool should backup the existing root-folder
- It would be great if the tool can also merge the web.config and similar xml configs - not sure if that is even possible.
The way I imagine the tool is that it will have some configuration file that will have an exclusion list (files not to copy) and another configuration to specify all the target folders where the copy job has to be repeated