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!