Geoff Varosky July 26, 2014 Automating Your Enterprise Application Deployments with PowerShell
Presentation Title | (#) About Me • Jornata – Senior Architect & Office 365 Practice Lead – President & Co-Founder Boston Area SharePoint Users Group – Co-Founder and Co-Organizer Boston Office 365 Users Group – Co-Organizer SharePoint Saturday Boston • Awards – Top 25 2012 Harmon.ie Online Community Influencer – Top 50 2012 KnowledgeLake Community Influencer – 2013 Metalogix Influencers Network • Blog – www.SharePointYankee.com • Email – geoff@varosky.com • Twitter – @gvaro
We Are Hiring in NYC! SharePoint Developer Technical Designer / Front End Developer UX Software Engineer UX Software Architect Java Architect Software Operations Mgr (Norwalk, CT) Learn more: https://www.linkedin.com/company/blue metal-architects/careers
Presentation Title | (#) About Me • Jornata – Managing Consultant, Senior Architect, Office 365 Practice Lead – President & Co-Founder Boston Area SharePoint Users Group – Co-Founder and Co-Organizer Boston Office 365 Users Group – Co-Organizer SharePoint Saturday Boston • Awards – Top 25 2012 Harmon.ie Online Community Influencer – Top 50 2012 KnowledgeLake Community Influencer – 2013 Metalogix Influeners Network • Blog – www.SharePointYankee.com • Email – geoff@varosky.com • Twitter – @gvaro
Presentation Title | (#) Agenda • Why Automation? • PowerShell • Environment Deployment • Application Deployment • Further Refinement • Resources & Tools • Q&A
Presentation Title | (#) Poll • Who is using SharePoint? – 2010? – 2013? • SharePoint Developers? • SharePoint Administrators? • Familiar with Scripting Languages? (bash, batch files, perl, vbscript) • Using PowerShell?
Presentation Title | (#) Why Automation? • Pros – “Almost” human-less deployments – Re-Deployment – Restoration – Documented and actionable deployment – Saves on knowledge transfer – Reduces the risks of human error – Repeatable process
Presentation Title | (#) Why Automation? • Cons – Possible significant up-front time – Knowledge of PowerShell needed – Not managed code – Requires constant upkeep
Presentation Title | (#) PowerShell • 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)
Presentation Title | (#) PowerShell • Cmdlets – PowerShell Commands – Can create your own – Standardized using a verb-noun convention • Eat-Cake • Drink-Beer • Live-Life
Presentation Title | (#) PowerShell • The Basics – Get-Command – Get-Help – Piping – Select-Object – Tab Completion
Presentation Title | (#) PowerShell • 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
Presentation Title | (#) PowerShell • SharePoint Management Shell – Loaded with SharePoint 2010/2013 – Automatically Loads Microsoft.SharePoint.PowerShell Snap In – 531 cmdlets (772 in 2013!)
Presentation Title | (#) PowerShell • SharePoint Management Shell – Requires PowerShell 2.0 – Backwards compatible, installs into 1.0 folder – <%SystemRoot%>System32WindowsPowerShellv1.0PowerShell.exe
Presentation Title | (#) PowerShell DEMO: SharePoint cmdlets
Presentation Title | (#) Environment Deployment • 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 • Office Web Apps Different in 2013 – ULS Logging path – IIS Configuration – PDF iFilter & ForeFront Installation and Configuration
Presentation Title | (#) Environment Deployment • 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
Presentation Title | (#) Environment Deployment • 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
Presentation Title | (#) Environment Deployment • Create Databases based on YOUR naming conventions
Presentation Title | (#) Environment Deployment • Maintenance – Any configurable change needs to be updated – If versioned, provides an evolution of your farm
Presentation Title | (#) Environment Deployment DEMO: AutoSPInstaller Review
Presentation Title | (#) Application Deployment • Why deploy applications in PowerShell? – Developers can pass installations to administrators – Replicable through environment deployments DEV TEST PROD
Presentation Title | (#) Application Deployment • 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
Presentation Title | (#) Application Deployment • 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
Presentation Title | (#) Application Deployment • 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
Presentation Title | (#) Application Deployment DEMO: Application Deployment
Presentation Title | (#) Recommendations • Documentation – Provide overall Guidelines • Basic usage, functionality • Naming of scripts • How scripts are used • How to use basic functions • How to run steps
Presentation Title | (#) Recommendations • Documentation – Function Reference – Copy of Functions script
Presentation Title | (#) Recommendations • Documentation – Script Samples • Helps with buy-in • Gives examples • Re-usable snippets
Presentation Title | (#) Further Refinements • 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
Presentation Title | (#) Resources • 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
Presentation Title | (#) Tools • 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
Presentation Title | (#) Boston Area SharePoint Users Group • Meets 2nd Wednesday/month • 6-8PM • Microsoft N.E.R.D. (Cambridge) • BostonSharePointUG.org • Twitter: @BASPUG / #BASPUG • SPTechCon Boston Hosted Meeting!
Presentation Title | (#) Boston Office 365 User Group • Meets 3rd Thursday/month • 6-8PM • Microsoft N.E.R.D. (Cambridge) • BostonO365UserGroup.org • Twitter: @BOS365
Presentation Title | (#) About Me • Jornata – Managing Consultant, Senior Architect, Senior Developer, Director of Evangelism – President & Co-Founder Boston Area SharePoint Users Group – Co-Founder and Co-Organizer Boston Office 365 Users Group – Co-Organizer SharePoint Saturday Boston • Awards – Top 25 2012 Harmon.ie Online Community Influencer – Top 50 2012 KnowledgeLake Community Influencer – 2013 Metalogix Influencers Network • Blog – www.SharePointYankee.com • Email – geoff@varosky.com • Twitter – @gvaro

Automating Enterprise Application Deployments with PowerShell

  • 1.
    Geoff Varosky July 26,2014 Automating Your Enterprise Application Deployments with PowerShell
  • 2.
    Presentation Title |(#) About Me • Jornata – Senior Architect & Office 365 Practice Lead – President & Co-Founder Boston Area SharePoint Users Group – Co-Founder and Co-Organizer Boston Office 365 Users Group – Co-Organizer SharePoint Saturday Boston • Awards – Top 25 2012 Harmon.ie Online Community Influencer – Top 50 2012 KnowledgeLake Community Influencer – 2013 Metalogix Influencers Network • Blog – www.SharePointYankee.com • Email – geoff@varosky.com • Twitter – @gvaro
  • 3.
    We Are Hiring inNYC! SharePoint Developer Technical Designer / Front End Developer UX Software Engineer UX Software Architect Java Architect Software Operations Mgr (Norwalk, CT) Learn more: https://www.linkedin.com/company/blue metal-architects/careers
  • 4.
    Presentation Title |(#) About Me • Jornata – Managing Consultant, Senior Architect, Office 365 Practice Lead – President & Co-Founder Boston Area SharePoint Users Group – Co-Founder and Co-Organizer Boston Office 365 Users Group – Co-Organizer SharePoint Saturday Boston • Awards – Top 25 2012 Harmon.ie Online Community Influencer – Top 50 2012 KnowledgeLake Community Influencer – 2013 Metalogix Influeners Network • Blog – www.SharePointYankee.com • Email – geoff@varosky.com • Twitter – @gvaro
  • 5.
    Presentation Title |(#) Agenda • Why Automation? • PowerShell • Environment Deployment • Application Deployment • Further Refinement • Resources & Tools • Q&A
  • 6.
    Presentation Title |(#) Poll • Who is using SharePoint? – 2010? – 2013? • SharePoint Developers? • SharePoint Administrators? • Familiar with Scripting Languages? (bash, batch files, perl, vbscript) • Using PowerShell?
  • 7.
    Presentation Title |(#) Why Automation? • 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.
    Presentation Title |(#) Why Automation? • Cons – Possible significant up-front time – Knowledge of PowerShell needed – Not managed code – Requires constant upkeep
  • 9.
    Presentation Title |(#) PowerShell • 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)
  • 10.
    Presentation Title |(#) PowerShell • Cmdlets – PowerShell Commands – Can create your own – Standardized using a verb-noun convention • Eat-Cake • Drink-Beer • Live-Life
  • 11.
    Presentation Title |(#) PowerShell • The Basics – Get-Command – Get-Help – Piping – Select-Object – Tab Completion
  • 12.
    Presentation Title |(#) PowerShell • 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
  • 13.
    Presentation Title |(#) PowerShell • SharePoint Management Shell – Loaded with SharePoint 2010/2013 – Automatically Loads Microsoft.SharePoint.PowerShell Snap In – 531 cmdlets (772 in 2013!)
  • 14.
    Presentation Title |(#) PowerShell • SharePoint Management Shell – Requires PowerShell 2.0 – Backwards compatible, installs into 1.0 folder – <%SystemRoot%>System32WindowsPowerShellv1.0PowerShell.exe
  • 15.
    Presentation Title |(#) PowerShell DEMO: SharePoint cmdlets
  • 16.
    Presentation Title |(#) Environment Deployment • 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 • Office Web Apps Different in 2013 – ULS Logging path – IIS Configuration – PDF iFilter & ForeFront Installation and Configuration
  • 17.
    Presentation Title |(#) Environment Deployment • 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
  • 18.
    Presentation Title |(#) Environment Deployment • 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
  • 19.
    Presentation Title |(#) Environment Deployment • Create Databases based on YOUR naming conventions
  • 20.
    Presentation Title |(#) Environment Deployment • Maintenance – Any configurable change needs to be updated – If versioned, provides an evolution of your farm
  • 21.
    Presentation Title |(#) Environment Deployment DEMO: AutoSPInstaller Review
  • 22.
    Presentation Title |(#) Application Deployment • Why deploy applications in PowerShell? – Developers can pass installations to administrators – Replicable through environment deployments DEV TEST PROD
  • 23.
    Presentation Title |(#) Application Deployment • 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
  • 24.
    Presentation Title |(#) Application Deployment • 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
  • 25.
    Presentation Title |(#) Application Deployment • 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
  • 26.
    Presentation Title |(#) Application Deployment DEMO: Application Deployment
  • 27.
    Presentation Title |(#) Recommendations • Documentation – Provide overall Guidelines • Basic usage, functionality • Naming of scripts • How scripts are used • How to use basic functions • How to run steps
  • 28.
    Presentation Title |(#) Recommendations • Documentation – Function Reference – Copy of Functions script
  • 29.
    Presentation Title |(#) Recommendations • Documentation – Script Samples • Helps with buy-in • Gives examples • Re-usable snippets
  • 30.
    Presentation Title |(#) Further Refinements • 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
  • 31.
    Presentation Title |(#) Resources • 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
  • 32.
    Presentation Title |(#) Tools • 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
  • 34.
    Presentation Title |(#) Boston Area SharePoint Users Group • Meets 2nd Wednesday/month • 6-8PM • Microsoft N.E.R.D. (Cambridge) • BostonSharePointUG.org • Twitter: @BASPUG / #BASPUG • SPTechCon Boston Hosted Meeting!
  • 35.
    Presentation Title |(#) Boston Office 365 User Group • Meets 3rd Thursday/month • 6-8PM • Microsoft N.E.R.D. (Cambridge) • BostonO365UserGroup.org • Twitter: @BOS365
  • 36.
    Presentation Title |(#) About Me • Jornata – Managing Consultant, Senior Architect, Senior Developer, Director of Evangelism – President & Co-Founder Boston Area SharePoint Users Group – Co-Founder and Co-Organizer Boston Office 365 Users Group – Co-Organizer SharePoint Saturday Boston • Awards – Top 25 2012 Harmon.ie Online Community Influencer – Top 50 2012 KnowledgeLake Community Influencer – 2013 Metalogix Influencers Network • Blog – www.SharePointYankee.com • Email – geoff@varosky.com • Twitter – @gvaro