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

Preview:

DESCRIPTION

Technical Class: Tuesday, March 5 4:00 PM - 5:15 PM

Citation preview

Automating your Enterprise Application Deployments with PowerShell

Geoff VaroskyMarch 5, 2013

ABOUT ME

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

ABOUT ME

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

AGENDA

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

Why Automation? PowerShell Environment Deployment Application Deployment Further Refinement Resources & Tools Q&A

POLL

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

Who is using SharePoint? SharePoint Developers? SharePoint Administrators? Familiar with Scripting Languages? (bash, batch files, perl,

vbscript) Using PowerShell?

WHY AUTOMATION?

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

WHY AUTOMATION? Cons

Possible significant up-front time Knowledge of PowerShell needed Not managed code Requires constant upkeep

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

POWERSHELL

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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)

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

POWERSHELL Cmdlets

PowerShell Commands Can create your own Standardized using a verb-noun convention

Eat-Cake Drink-Beer Live-Life

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

POWERSHELL The Basics

Get-Command Get-Help Piping Select-Object

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

POWERSHELL Aliases

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

POWERSHELL SharePoint Management Shell

Loaded with SharePoint 2010/2013 Automatically Loads Microsoft.SharePoint.PowerShell

Snap In 531 cmdlets

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

POWERSHELL SharePoint Management Shell

Requires PowerShell 2.0 Backwards compatible, installs into 1.0 folder

<%SystemRoot%>\System32\WindowsPowerShell\v1.0\PowerShell.exe

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

DEMO: SHAREPOINT CMDLETS

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

ENVIRONMENT DEPLOYMENT

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

ULS Logging path IIS Configuration PDF iFilter Installationgeoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

ENVIRONMENT DEPLOYMENT 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.

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

ENVIRONMENT DEPLOYMENT Creates databases based on YOUR naming

conventions

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

ENVIRONMENT DEPLOYMENT Maintenance

Any configurable change needs to be updated If versioned, provides an evolution of your farm Ensures

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

DEMO: AUTOSPINSTALLER REVIEW

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

APPLICATION DEPLOYMENT

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

APPLICATION DEPLOYMENT Why deploy applications in PowerShell?

Developers can pass installations to administrators Replicable through environment deployments

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

DEV TEST PROD

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

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

DEMO: APPLICATION DEPLOYMENT

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

RECOMMENDATIONS Documentation

Provide overall Guidelines Basic usage, functionality Naming of scripts How scripts are used How to use basic functions How to run steps

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

RECOMMENDATIONS Documentation

Function Reference Copy of Functions script

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

RECOMMENDATIONS Documentation

Script Samples Helps with buy-in Gives examples Re-usable snippets

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

QUESTIONS?

gvarosky@jornata.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

BOSTON AREA SPUG Meets 2nd Wednesday/month 6-8PM Microsoft N.E.R.D. (Cambridge) BostonSharePointUG.org Twitter: @BASPUG / #BASPUG SPTechCon Hosted Meeting in August!

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

QUESTIONS?

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

ABOUT ME

geoff@varosky.com | @gvaro | www.sharepointyankee.com | www.jornata.com | @JornataLLC

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

Recommended