Automating your Enterprise Application Deployments with PowerShell
 Geoff Varosky  Jornata  Managing Consultant, Senior Architect, Senior Developer, Director of Evangelism  President & Co-Founder Boston Area SharePoint Users Group  Co-Organizer SharePoint Saturday Boston  Recent Awards  Top 25 2012 Harmon.ie Online Community Influencer  Top 50 2012 KnowledgeLake Community Influencer  Blog – www.SharePointYankee.com  Email – geoff@varosky.com  Twitter – @gvaro
 Why Automation?  PowerShell  Environment Deployment  Application Deployment  Further Refinement  Resources & Tools  Q&A
 Who is using SharePoint?  SharePoint Developers?  SharePoint Administrators?  Familiar with Scripting Languages? (bash, batch files, perl, vbscript)  Using PowerShell?
 Pros  “Almost” human-less deployments  Re-Deployment  Restoration  Documented and actionable deployment  Saves on knowledge transfer  Reduces the risks of human error  Repeatable process
 Cons  Possible significant up-front time  Knowledge of PowerShell needed  Not managed code  Requires constant upkeep
 What is it?  More flexible, faster, extensible, and POWERful than STSADM  Scripting Language  Based on C#  Integrated with the .NET Framework  Load in DLLs  Provides full access to COM amd WMI  Not limited to JUST PowerShell  DOS commands (with UNIX-like aliases)
 Cmdlets  PowerShell Commands  Can create your own  Standardized using a verb-noun convention  Eat-Cake  Drink-Beer  Live-Life
 The Basics  Get-Command  Get-Help  Piping  Select-Object
 Aliases Cmdlet DOS Alias Description Get-Location pwd gl Current directory Set-Location cd, chdir sl Change current directory Copy-Item copy cpi Copy file/directory Remove-Item del ri Remove file/directory Move-Item move mi Move a file/directory New-Item - ni New a file/directory/object Clear-Item - cli Clear contents of file Get-Content type gc Read file contents to output Set-Content - sc Set file contents Format-Table - ft Formats output
 SharePoint Management Shell  Loaded with SharePoint 2010/2013  Automatically Loads Microsoft.SharePoint.PowerShell Snap In  531 cmdlets
 SharePoint Management Shell  Requires PowerShell 2.0  Backwards compatible, installs into 1.0 folder  <%SystemRoot%>System32WindowsPowerShellv1.0PowerShell.exe
 AutoSPInstaller  Deploy single or multi-server farms from one script  XML-based configuration  Re-launches with Elevated Privs to deal with User Access Control  Automatically download and install platform pre-requisites  Can be done in offline mode  Install both SharePoint and Office Web Apps using config files  ULS Logging path  IIS Configuration  PDF iFilter Installation
 AutoSPInstaller  Remote installation into other servers into the farm  Forefront installation and configuration  Logging of all installation  Easily re-start if a failure occurs  Easily slipstream installations (service pack 1, CUs, etc.)  Create web applications, site collections  New WFE or App Server? Wash, Rinse, Repeat.  New web application or service application? Wash, Rinse, Repeat.
 Configure Service Applications  User Profile Service Application  User Profile Synchronization Service  Metadata Service Application  SharePoint Foundation User Code Service  State Service Application  Usage and Health Service Application  Secure Store Service  Enterprise Search Service Application  Web Analytics Service Application  Business Data Connectivity Service Application  Excel Service Application  Access Service Application
 Configure Service Applications  PerformancePoint Service Application  Visio Graphics Service Application  Word Automation (Conversion) Service Application  Word Viewing Service Application  Excel Service Application (if not already provisioned by virtue of having an Enterprise license)  Not PowerPivot  Overly complex install
 Creates databases based on YOUR naming conventions
 Maintenance  Any configurable change needs to be updated  If versioned, provides an evolution of your farm  Ensures
 Why deploy applications in PowerShell?  Developers can pass installations to administrators  Replicable through environment deployments DEV TEST PROD
 What can be automated?  Farm Configuration  Service application configuration  Search scopes  Managed Metadata  Web application configuration  Upload limits  Permission policies  Solution Deployment  EXE and MSI deployments
 Anatomy  Deployment Master Script  Variables  Initiates Logging  Step-By-Step Deployment  Directions and Documentation  Shared Functions File  Updates not to be done across scripts  Managed by platform team  Steps
 Documentation  Provide overall Guidelines  Basic usage, functionality  Naming of scripts  How scripts are used  How to use basic functions  How to run steps
 Documentation  Function Reference  Copy of Functions script
 Documentation  Script Samples  Helps with buy-in  Gives examples  Re-usable snippets
 Handle all configuration via XML file variables  Export steps to their own scripts  Manage entirely through SharePoint Lists  Additional steps can be scripted/approved through workflow?  Host documentation and example scripts in SharePoint, allow alerts for file changes
 What is COM?  http://en.wikipedia.org/wiki/Component_Object_Model  What is WMI?  http://en.wikipedia.org/wiki/Windows_Management_Instrumentation  PowerShell for SharePoint References  2010: http://go.gvaro.net/XgmYCk  2013: http://go.gvaro.net/YBLtGW  Cmdlet Index  2010: http://go.gvaro.net/WHh5wD  2013: http://go.gvaro.net/151DGaX
 Windows PowerShell for SharePoint Command Builder  http://go.gvaro.net/WS4s3u  Gary Lapointe’s PowerShell cmdlets  http://go.gvaro.net/YirJau  AutoSPInstaller  http://autospinstaller.codeplex.com
 Meets 2nd Wednesday/month  6-8PM  Microsoft N.E.R.D. (Cambridge)  BostonSharePointUG.org  Twitter: @BASPUG / #BASPUG  SPTechCon Hosted Meeting in August!
 Geoff Varosky  Jornata  Managing Consultant, Senior Architect, Senior Developer, Director of Evangelism  President & Co-Founder Boston Area SharePoint Users Group  Co-Organizer SharePoint Saturday Boston  Recent Awards  Top 25 2012 Harmon.ie Online Community Influencer  Top 50 2012 KnowledgeLake Community Influencer  Blog – www.SharePointYankee.com  Email – geoff@varosky.com  Twitter – @gvaro

Automating Your Enterprise Application Deployments With PowerShell by Geoff Varosky - SPTechCon

  • 1.
    Automating your EnterpriseApplication Deployments with PowerShell
  • 2.
     Geoff Varosky  Jornata  Managing Consultant, Senior Architect, Senior Developer, Director of Evangelism  President & Co-Founder Boston Area SharePoint Users Group  Co-Organizer SharePoint Saturday Boston  Recent Awards  Top 25 2012 Harmon.ie Online Community Influencer  Top 50 2012 KnowledgeLake Community Influencer  Blog – www.SharePointYankee.com  Email – geoff@varosky.com  Twitter – @gvaro
  • 4.
    Why Automation?  PowerShell  Environment Deployment  Application Deployment  Further Refinement  Resources & Tools  Q&A
  • 5.
    Who is using SharePoint?  SharePoint Developers?  SharePoint Administrators?  Familiar with Scripting Languages? (bash, batch files, perl, vbscript)  Using PowerShell?
  • 7.
     Pros  “Almost” human-less deployments  Re-Deployment  Restoration  Documented and actionable deployment  Saves on knowledge transfer  Reduces the risks of human error  Repeatable process
  • 8.
     Cons  Possible significant up-front time  Knowledge of PowerShell needed  Not managed code  Requires constant upkeep
  • 10.
     What isit?  More flexible, faster, extensible, and POWERful than STSADM  Scripting Language  Based on C#  Integrated with the .NET Framework  Load in DLLs  Provides full access to COM amd WMI  Not limited to JUST PowerShell  DOS commands (with UNIX-like aliases)
  • 11.
     Cmdlets  PowerShell Commands  Can create your own  Standardized using a verb-noun convention  Eat-Cake  Drink-Beer  Live-Life
  • 12.
     The Basics  Get-Command  Get-Help  Piping  Select-Object
  • 13.
     Aliases Cmdlet DOS Alias Description Get-Location pwd gl Current directory Set-Location cd, chdir sl Change current directory Copy-Item copy cpi Copy file/directory Remove-Item del ri Remove file/directory Move-Item move mi Move a file/directory New-Item - ni New a file/directory/object Clear-Item - cli Clear contents of file Get-Content type gc Read file contents to output Set-Content - sc Set file contents Format-Table - ft Formats output
  • 14.
     SharePoint ManagementShell  Loaded with SharePoint 2010/2013  Automatically Loads Microsoft.SharePoint.PowerShell Snap In  531 cmdlets
  • 15.
     SharePoint ManagementShell  Requires PowerShell 2.0  Backwards compatible, installs into 1.0 folder  <%SystemRoot%>System32WindowsPowerShellv1.0PowerShell.exe
  • 18.
     AutoSPInstaller  Deploy single or multi-server farms from one script  XML-based configuration  Re-launches with Elevated Privs to deal with User Access Control  Automatically download and install platform pre-requisites  Can be done in offline mode  Install both SharePoint and Office Web Apps using config files  ULS Logging path  IIS Configuration  PDF iFilter Installation
  • 19.
     AutoSPInstaller  Remote installation into other servers into the farm  Forefront installation and configuration  Logging of all installation  Easily re-start if a failure occurs  Easily slipstream installations (service pack 1, CUs, etc.)  Create web applications, site collections  New WFE or App Server? Wash, Rinse, Repeat.  New web application or service application? Wash, Rinse, Repeat.
  • 20.
     Configure ServiceApplications  User Profile Service Application  User Profile Synchronization Service  Metadata Service Application  SharePoint Foundation User Code Service  State Service Application  Usage and Health Service Application  Secure Store Service  Enterprise Search Service Application  Web Analytics Service Application  Business Data Connectivity Service Application  Excel Service Application  Access Service Application
  • 21.
     Configure ServiceApplications  PerformancePoint Service Application  Visio Graphics Service Application  Word Automation (Conversion) Service Application  Word Viewing Service Application  Excel Service Application (if not already provisioned by virtue of having an Enterprise license)  Not PowerPivot  Overly complex install
  • 22.
     Creates databasesbased on YOUR naming conventions
  • 23.
     Maintenance  Any configurable change needs to be updated  If versioned, provides an evolution of your farm  Ensures
  • 26.
     Why deployapplications in PowerShell?  Developers can pass installations to administrators  Replicable through environment deployments DEV TEST PROD
  • 27.
     What canbe automated?  Farm Configuration  Service application configuration  Search scopes  Managed Metadata  Web application configuration  Upload limits  Permission policies  Solution Deployment  EXE and MSI deployments
  • 28.
     Anatomy  Deployment Master Script  Variables  Initiates Logging  Step-By-Step Deployment  Directions and Documentation  Shared Functions File  Updates not to be done across scripts  Managed by platform team  Steps
  • 30.
     Documentation  Provide overall Guidelines  Basic usage, functionality  Naming of scripts  How scripts are used  How to use basic functions  How to run steps
  • 31.
     Documentation  Function Reference  Copy of Functions script
  • 32.
     Documentation  Script Samples  Helps with buy-in  Gives examples  Re-usable snippets
  • 33.
     Handle allconfiguration via XML file variables  Export steps to their own scripts  Manage entirely through SharePoint Lists  Additional steps can be scripted/approved through workflow?  Host documentation and example scripts in SharePoint, allow alerts for file changes
  • 34.
     What isCOM?  http://en.wikipedia.org/wiki/Component_Object_Model  What is WMI?  http://en.wikipedia.org/wiki/Windows_Management_Instrumentation  PowerShell for SharePoint References  2010: http://go.gvaro.net/XgmYCk  2013: http://go.gvaro.net/YBLtGW  Cmdlet Index  2010: http://go.gvaro.net/WHh5wD  2013: http://go.gvaro.net/151DGaX
  • 35.
     Windows PowerShellfor SharePoint Command Builder  http://go.gvaro.net/WS4s3u  Gary Lapointe’s PowerShell cmdlets  http://go.gvaro.net/YirJau  AutoSPInstaller  http://autospinstaller.codeplex.com
  • 37.
    Meets 2nd Wednesday/month  6-8PM  Microsoft N.E.R.D. (Cambridge)  BostonSharePointUG.org  Twitter: @BASPUG / #BASPUG  SPTechCon Hosted Meeting in August!
  • 39.
     Geoff Varosky  Jornata  Managing Consultant, Senior Architect, Senior Developer, Director of Evangelism  President & Co-Founder Boston Area SharePoint Users Group  Co-Organizer SharePoint Saturday Boston  Recent Awards  Top 25 2012 Harmon.ie Online Community Influencer  Top 50 2012 KnowledgeLake Community Influencer  Blog – www.SharePointYankee.com  Email – geoff@varosky.com  Twitter – @gvaro

Editor's Notes

  • #3 Wonderful family, wife, 2 kids, love camping, hiking, backpacking, snowshoeing, and I’m also a stand-up comedian, and I love a good 80’s themed party.
  • #8 Upkeep – all code requires this.
  • #10 Component Object ModelWindows Management InstrumentationUnlike VBScript, it is a way for interacting with .NET objects
  • #16 Get-command -Verb GetGet-command –Noun AddGet-command SP*Set-Location Alias: &gt; Get-ChildItemGet-PSProvider
  • #18 Why AutoSPInstaller? The work has all been done for you, you can modify the code as needed.
  • #22 No more GUID gobbeldygook
  • #27 You name it!