Breaking the Kubernetes Kill Chain: Host Path Mount
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
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
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
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!)
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
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
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
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
33.
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