I have a system which currently consists of
- .NET application
- batch files
- MS SQL server database
This system is deployed in 20 laptops with Windows 10 OS. Everytime there is a new release/update of the system, we would update the system in each laptops by copying the required files to a thumb drive and working on each laptops one-by-one. If there was a new stored procedure/function, we would of course have to execute them in each laptop's SQL Server.
This process is tiring and error-prone. I am trying to look for an automation tool that can help me do all this. The requirements would look something like this:
- When each laptop is connected to the release server in a local network, the tool would scan the release server for files that needs to be updated.
- The tool would then scan each laptops for the version of the files and if the version does not match the one in release server, it would replace them accordingly.
- The tool would also scan SQL server database objects (tables, functions, stored procedure, etc...) for differences between each laptop's database and the release server's database and execute required scripts to update the objects.
- If the file/database objects does not exist, the tool would add them in or execute relevant scripts accordingly.
I could write my own script/program to do this but I don't want to re-invent the wheel. Some colleagues have recommended me Microsoft's SCCM but I want to use a non-Windows Server OS to do the deployment and also, I'm preferring to go open-source.