A Topology Generator for SDL Tridion
Available at http://topologygenerator.azurewebsites.net/
In preparation for taking my SDL certification(s) I came across a need for something to make setting up the topology in SDL Web 8 easier, as it can currently only be run using powershell scripts, which are prone to error, and prove quite labourous to write.
I started doing something with spreadsheets, which was a definite improvement, but still prone to errors.
When you start digging into the Topology Manager for SDL Web 8 you'll find that even just to setup a very basic topology you'll have to run 5 powershell cmdlets to get up and running.
Add-TtmCdTopologyType -Id TTID -Name NAME -EnvironmentPurposes "PURPOSE" Add-TtmCdEnvironment -Id CDEID -EnvironmentPurpose PURPOSE -DiscoveryEndpointUrl http://.../ -AuthenticationType OAuth -ClientId CLIENTID -ClientSecret CLIENTSECRET Add-TtmCdTopology -Id TID -Name NAME -CdTopologyTypeId TTID -CdEnvironmentIds "CDEID" Add-TtmWebsite -Id WID -CdEnvironmentId CDID -BaseUrls "http://site.com" Add-TtmMapping -Id MID -PublicationID tcm:... -WebApplicationId WID_RootWebApp
When you started to consider multi-site and localization, the number of cmdlets increases dramatically. I am working on a site with only ~25 localized sites and there is in excess of 100 cmdlets to run. This was a nightmare to setup, and ended up with an excel fileto try and map it all, but one typo and all the dependencies would break and then a lot of time would be lost working back through the process using the delete cmdlets.
It was also a good excuse to get up to speed with Angular 2, so a nice 2 for 1 bonus!
Next I want to make a way you import the JSON produced by Export-TtmCdStructure and remap the text boxes and regenerate the powershell.
I also want to consider the option to update and remove with the generator, but I am not sure if this is really needed.
List of SDL Topology Manager cmdlets
Add-TtmCdEnvironment Add-TtmCdTopology Add-TtmCdTopologyType Add-TtmCmEnvironment Add-TtmMapping Add-TtmSiteTypeKey Add-TtmWebApplication Add-TtmWebsite Clear-TtmCdEnvironment Clear-TtmMapping Disable-TtmCdEnvironment Enable-TtmCdEnvironment Export-TtmCdStructure Get-TtmCdEnvironment Get-TtmCdTopology Get-TtmCdTopologyType Get-TtmCmEnvironment Get-TtmMapping Get-TtmWebApplication Get-TtmWebsite Import-TtmCdStructure Remove-TtmCdEnvironment Remove-TtmCdTopology Remove-TtmCdTopologyType Remove-TtmCmEnvironment Remove-TtmMapping Remove-TtmSiteTypeKey Remove-TtmWebApplication Remove-TtmWebsite Set-TtmCdEnvironment Set-TtmCdTopology Set-TtmCdTopologyType Set-TtmCmEnvironment Set-TtmMapping Set-TtmWebApplication Set-TtmWebsite Sync-TtmCdEnvironment