Geoff Varosky presented on automating enterprise application deployments with PowerShell. PowerShell allows automating environment and application deployments through scripting. It provides advantages like human-less deployments and repeatable processes. Examples of automation include farm configuration, service applications, and solution deployments. Documentation and shared functions help refine automated deployments over time.
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
5. Who is using SharePoint?
SharePoint Developers?
SharePoint Administrators?
Familiar with Scripting Languages? (bash, batch files, perl, vbscript)
Using PowerShell?
6.
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
9.
10. 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)
11. Cmdlets
PowerShell Commands
Can create your own
Standardized using a verb-noun convention
Eat-Cake
Drink-Beer
Live-Life
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 Management Shell
Loaded with SharePoint 2010/2013
Automatically Loads Microsoft.SharePoint.PowerShell Snap In
531 cmdlets
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 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
21. 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
23. Maintenance
Any configurable change needs to be updated
If versioned, provides an evolution of your farm
Ensures
24.
25.
26. Why deploy applications in PowerShell?
Developers can pass installations to administrators
Replicable through environment deployments
DEV TEST PROD
27. 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
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
29.
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
33. 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
34. 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
35. 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
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
Notas do Editor
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.
Upkeep – all code requires this.
Component Object ModelWindows Management InstrumentationUnlike VBScript, it is a way for interacting with .NET objects