I want to automate the deployment of applications / roles / functions (unattended) in Windows 2012 R2 Infrastructure, this project requires many hours of programming, which is why I ask here.
I want to deploy the following applications and roles: Active Directory, DNS, Sql Server 2012, Citrix XenApp Server, Citrix XenDesktop, Citrix Datacollector, Citrix License Server, Citrix Storefront Server.
So, the main deployment will be on 8 servers (already installed on ESXi, only with ip settings).
I presented this scenario:
I will fill in a CSV file containing all the information and run Powershell scripts to deploy everything, we can imagine 1 script that will call different scripts for each component (sql, ad, dns, citrix, etc.).
I donβt want to depend on any instrument (sccm, puppet or something else ..), thatβs why I want to create it from scratch β But maybe I'm wrong.
I also read that there is a new feature called Powershell DSC to simplify application deployment http://blogs.technet.com/b/privatecloud/archive/2013/08/30/introducing-powershell-desired-state-configuration-dsc .aspx There is a simple example: if you need 4 iis webserver, execute this code:
Configuration DeployWebServers { Node ("test1.domain.com","test2.domain.com","test3.domain.com","test4.domain.com") { Windows-Feature IIS { Name = "Web-Server" Ensure = "Present" } } } DeployWebServers -OutputPath "C:\scripts" Start-DscConfiguration -path "C:\scripts" -Verbose -Wait -Force
But in my case, I will only have 1 server for each application / role or function, if I understand well, this function is interesting only if you need to deploy the same configuration to the servers (x)
What is your advice? Should I select a powershell script entry from scratch? Or choose a solution similar to a puppet or a chef (much easier), but in this case I will be dependent on the tool.
The best solution would be to use a sql database -> The ultimate goal of my project is a web application with a database that will execute my powershell scripts to deploy my infrastructure
Of course, from this web application I will fill out my database through forms, and my powershell scripts will query this database for information (IP address, client name, domain name, password, users ...) **
Thank you for your advice.