PowerShell for DevOps Automation
Automating build and deployment processes is a central pillar of DevOps. When multiple builds are being deployed from Dev to Test to Production everyday it’s vital to automate as much as possible. This can be achieved by using scripts to create workflows that link together the tools used for development, provisioning, and configuration management with the infrastructure platforms. In environments based on the Microsoft platform the PowerShell automation and scripting platform is the Microsoft recommended solution. This includes a powerful command line scripting language that is built on top of the full .NET framework. PowerShell has full access to .NET objects and also to the Window Server management interfaces. It can be used to fully manage the Microsoft platform for Exchange, SQL Server, SharePoint, Systems Centre and more, plus any Azure or Office 365 components in the Cloud. In September 2015 the latest PowerShell version 3 was released for Windows 7, Windows Server 2008 and Server 2008 R2, allowing these operating systems to be managed via PowerShell alongside the current Windows Server 2012 products.
PowerShell has been so successful and useful as a management scripting tool on the Microsoft platform that many other non Microsoft toolsets have added support for it. The main DevOps toolsets all support it, namely:
Here at Kemp Technologies we have also seen the value of PowerShell and have developed a pool of PowerShell cmdlets within our PowerShell for Kemp LoadMaster module. Using this allows LoadMaster provisioning to be part of an automated DevOps deployment workflow.
PowerShell has also been adopted by VMware as the scripting language for their PowerCLI management product. PowerCLI allows the VMware product suite to be managed with PowerShell scripts. Thus making the provision of vSphere and vCloud Air hosted servers possible from PowerShell based automation workflows.