Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

42
C05- Automatiser vos déploiements d’environnements SharePoint 2010/2013 grâce à PowerShell

description

Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Transcript of Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Page 1: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

C05- Automatiser vos déploiements d’environnements SharePoint 2010/2013 grâce à PowerShell

Page 2: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Vos hôtes

Franck CornuConsultant SharePoint depuis 3 ans

• Analyse et architecture d’information• Développement• Infrastructure

Benjamin GuinebertièreEvangéliste technique Windows Azure

• Division plateforme & Ecosystème• Microsoft France• @benjguin

[email protected]

Page 3: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Agenda

Qui est concerné?

Quoi automatiser et pourquoi?

PowerShell avec SharePoint, par où commencer?

L'automatisation à travers un projet SharePoint de A à Z

Conclusion

Page 4: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

A qui s’adresse cette session?

Administrateurs SharePoint

Automatiser l’installation et la configuration des environnements SharePoint

Automatiser les tâches d’administration courantes

Développeurs SharePoint

Automatiser les déploiements et la configuration des développements personnalisés

Décideurs TI Cibler les éléments à automatiser Évaluez les gains et avantages

Page 5: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Pourquoi automatiser?

Constat sur les projets Ce que vous gagnez à automatiser

La plupart des étapes de mise en place d’un projet SharePoint sont connues et inévitables

Ces tâches sont répétitives, prennent du temps et n'apportent pas de valeur directe au projet

Raison de plus pour laisser un script s’en charger et se concentrer sur des choses plus importantes

Toute opération manuelle peut amener des erreurs et des différences entre les environnements

Ici pas de surprise, un script ne se trompe jamais. De même, le diagnostic des erreurs est plus avancé.

Les tâches manuelles sont souvent non documentées et donc peu traçable et encore moins reproduisibles

Les fichiers de configuration et le script lui-même vous indique au minimum ce qui est réalisé et comment.

Les entreprises ou prestataires de services sont rétissants à automatiser car cela prend trop de temps.

Automatiser prend du temps, mais vous en fait gagner énormément par la suite. De plus vous, construisez votre expertise SharePoint en bâtissant vos outils et en les réutilisant chez vous ou vos clients.

Page 6: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Étapes de mise en place courantes d’une ferme

SharePointSur un projet SharePoint typique (quel que soit la version)

Cinq macro étapes (en général)

Multipliées par le nombre d’environnement à déployer….

Et les tâches d’administration qui s’en suivent….

Page 7: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Environnements SharePoint

Il devient évident qu’une automatisation s’impose! C’est donc maintenant que PowerShell entre en jeu

Développement Intégration

Pré-ProductionProduction

Qualification

Page 8: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Un mot sur PowerShell

Langage de script Différent de batch Base en programmation orientée objet utile !

Facilite les tâches d’administration dans les environnements MS

Windows SharePointExchange….

Basé sur le Framework .NetTout est objet sous PowerShell

Commandes prédéfinies « Cmdlets »Commandes prédéfiniesManipulent ou retournent des objets et non du texteFormalisme « Verbe-Nom » (Exemple « Get-SPSite »)Regroupées dans un « Snapin »Pipelining possible entre cmdlets via le caractère « |» Possibilité de créer vos propres Cmdlets et Snapins avec Visual Studio

Page 9: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Un mot sur PowerShell

Fichiers de scriptParamétrables

Peuvent être chainés après redémarrage (one click install)

$args« Nombre d’arguments + $args.Count »

Param($arg1, $arg2)

« Argument 1: + $arg1 »« Argument 2: + $arg2 »

$AdminKey = "HKLM:"

$RunOnceKey = $AdminKey + "\Software\Microsoft\Windows\CurrentVersion\RunOnce"

Set-Itemproperty $RunOnceKey "MyScript" ('C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe -ExecutionPolicy Unrestricted -File <ScriptPath> + <Parameters>

Page 10: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

PowerShell avec SharePoint

Utilisation des cmdlets SharePointAjout du Snapin PowerShell pour SharePoint

OU avec le raccourci SharePoint

Exemple d’utilisation de cmdlet SharePoint

Syntaxe des objets SharePoint (SP<QuelqueChose>) SPSite, SPWeb, SPFarm,….

Accès aux objets .Net SharePoint autrement que par Cmdlets

$site = Get-SPSite | Where-Object {$_.Url -eq "http://sp2013"}

Add-PSSnapin « Microsoft.SharePoint.PowerShell »

[void][Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

$site = New-Object Microsoft.SharePoint.SPSite(“http://sp2013”)

Page 11: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

PowerShell avec SharePoint

Cmdlets restreintes si vous travaillez avec SharePoint Online!Présentation de SharePoint Online Management Shell

Autoriser l’éxecution de scripts PowerShell

Droit requisOn Premise

Membre du groupe SharePoint_Shell_Access  ou WSS_Admin_WPG securityadmin sur l’instance SQLdb_owner sur les base de données à manipuler

OnlineUtilisateur « Global admnistrator »

Set-ExecutionPolicy RemoteSigned

Add-SPShellAdmin –UserName « DOMAIN\user »

Connect-SPOService -Url https://contoso-admin.sharepoint.com -credential [email protected]

Page 12: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

PowerShell avec SharePoint

Outil pour créer vos scripts

NotePad ++

PowerShell ISE Par défaut sur Windows Server

2012Feature à installer sur Windows

Server 2008 R2Debug + Intellisense (version

3.0)

PowerGUIIntellisense + DebugPlugin Visual Studio

Hack pour Extension VS 2012

Page 13: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Étapes d’un projet SharePoint

Page 14: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Installation de l’OSPhysiques ou VMs (recommandé)Liste des version de Windows Server compatibles:

Pour SharePoint 2010 (Attention Windows Server 2012 non pris en charge)

Pour SharePoint 2013

Sur chacun des serveurs de votre fermeEn local ou dans le cloud!

Possibilité de scripter le déploiement de vos machines virtuelles grâce à PowerShell et Windows Azure!

Création des comptes de services SharePointAu minimum (identiques selon la version)

Compte de setup (securityadmin et dbcreator + admin local)Compte de ferme (Compte d’accès à la base de données)Compte du pool d’applications IIS

ServicesApplications web

Compte du service de recherche Compte d’accès au contenu (Compte de crawl)…

1-Installation des serveurs

Page 15: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Déploiement automatique avec Windows Azure

1-Installation des serveurs

Page 16: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Continuum SharePoint avec le cloud

Contrôle

Opti

misati

on du C

oût

SharePoint (à demeure)

• SharePoint

Proposition de valeur :• Contrôle complet • matériel (taille/échelle)• Contrôle de HA/DR/taille

Proposition de valeur :• 100% des API• Migration simple des

personnalisations existantes• Contrôle de HA/DR/taille

SharePoint (IaaS)

• Hosted SharePoint

Proposition de valeur :• HA, tolérance aux pannes auto• Montée en charge sans heurts• Self-provisioning, mgmt @ gde échelle

• SharePoint Service

Office 365 (SaaS)

Page 17: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Vue d’ensemblede Windows Azure

Windows Azure

Services

web apps

web sites

cloud apps

cloud services

Apps existantes

virtual machines

identité&

securitéService

BusCDN Mobile Services

HDInsight (Hadoop) mediaRéseaustockage

SQL database

Page 18: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

VM Windows Azure

VM à demeure

VHD

Hyperviseur Windows Azure

VM

OS

Données

Cache

Windows Azure Blob Storage

Cache.VHD

VHD

Bibliothèque plateforme

Images standard

Nelle VMcsupload

[sysprep]

Disque OS

Disques de données

VHD

VHD

VHD

Capture image (sysprep)Image

Nelle VM VHD

Windows Azure

à demeureProvisionner

Attacher

Page 19: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Installation automatisée

Windows Azure Training KitLabs

Exemple de scripthttp://aka.ms/azure-ps-infraSP

Etapes:Création VM depuis image Windows Server 2012Installation et configuration Active DirectoryCréation 2 VM depuis image Windows Server 2012

Intégration dans le domaine

Création 2 VM depuis image SQL Server 2012Intégration dans le domaine

Ajout du rôle Web dans les 2 VM WindowsServer 2012

Page 20: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Démo

Page 21: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Gestion des logsLibraries .Net

Log4net (Recommandé)

Tracer les sorties textes, erreurs de commandes à l’intérieur d’un bloc d’instructions ou un script dans un fichier texte

Start/Stop-Transcript

Dans le journal d’événements WindowsNew-EventLog/Write-EventLog

Configuration via XMLPréférez toujours utiliser un couple fichier de configuration +

fonction PowerShell générique

Lecture d’un fichier XML en PowerShell très simple avec Get-Content

Pratiques générales

[void][Reflection.Assembly]::LoadFrom(".\Log4Net.dll")$Global:Logger = [log4net.LogManager]::GetLogger("LogPowerShell")$Global:Logger.Info("Logging system ready")

Start-Transcript Log.rtf< Bloc d'instructions >Stop-Transcript

New-EventLog -LogName SharePoint -Source MyScriptWrite-EventLog -LogName SharePoint -Source MyScript -Message "Les logs, c'est cool!" -EventId 0 -EntryType information

Page 22: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Stratégies de développement

Fichier XML de configuration + fonction PowerShell associée

Dans SharePoint, la plupart des notions sont hiérarchiques Get-Content

Pratiques générales

<Sites> <Site> <Webs> <Web name=“test”> </Web> </Webs> </Site></Sites>

[xml]$xml = Get-Content “XmlPath”

Foreach($web in $xml.Sites.Site.Webs.Web){

Write-Host $web.GetAttribute(“name”)}

Page 23: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Étapes d’un projet SharePoint

Page 24: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Rôles serveur web IIS et serveur d’applicationsWindows Server 2008 et 2008 R2: Import-ServerManager + Add-WindowsFeature -

NameWindows Server 2012: Install-WindowsFeature -NameListe des features avec Get-WindowsFeature

Installation de SQL Server (Cas d’une machine de développement)Possibilité de scripter via setup.exe /configurationfileUtilisez l’assistant pour créer votre fichier de configuration

Installation des binaires SharePointPrérequis (prerequisiteinstaller.exe)

OnlineTéléchargement automatique des prérequis dans un ordre précis

OfflineSpécifications des fichiers par ligne de commande

Installation des packs de langues, cumulatives updates, Office Web Apps (pour 2010)

Utilisation de la cmdlet « Start-Process »

2-Installation de SharePoint

/SQLNCli/PowerShel/NETFX/IDFX/IDFX11/Sync/AppFabric/KB2671763/MSIPCClient/WCFDataServices

Start-Process "$SQLInstallFolder\setup.exe" -Wait -ArgumentList "/CONFIGURATIONFILE=$ConfigFile"

Page 25: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Étapes d’un projet SharePoint

Page 26: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

3-Configuration de SharePoint

Page 27: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

3-Configuration de SharePoint

Création de la base de données de configuration et l’administration centrale (noms normalisés)

Même séquence pour SharePoint 2010 que 2013

New-SPConfigurationDatabase/ Connect-SPConfigurationDatabase

Install-SPHelpCollection -All

Initialize-SPResourceSecurity

Install-SPFeature –AllExistingFeatures

New-SPCentralAdministration

Install-SPApplicationContent

Configuration des logs (niveau de sévérité, chemins, etc…)

Set-SPDiagnosticConfigSet-SPLogLevel

Ajouts des comptes géréesNew-SPManagedAccount: Ajout d’un nouveau compte managéAttention le auto generate password semble poser problème en SharePoint 2010.

Page 28: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Création des applications de servicesPermet la normalisation des noms de bases de données et une

configuration plus avancée Application générique SPServiceApplication

Instance de service SPServiceInstanceDémarrage: Provision()État: Status

¸Managed Metadata (SPMetadataServiceApplication)

Search Service (SPEnterpriseSearchServiceApplication)Topologie de recherche Cdmlets Import/Export de configurations

User profile (SPProfileServiceApplication)Préférez une synchronisation manuelle vs automatique par

PowerShell

3-Configuration de SharePoint

Get-SPServiceInstance | ? {$_.GetType().ToString() -eq "Microsoft.SharePoint.Taxonomy.MetadataWebServiceInstance"}

Get-SPServiceApplication | ? {$_.GetType().ToString() -eq "Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplication"}

Page 29: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

3-Configuration de SharePoint

Manipulation des entités logiques SharePoint

Création de structure automatique + configuration

SPFarm (Ferme)SPWebApplication (Application Web)SPSite (Collection de sites)SPWeb (Site)SPList (Liste ou bibliothèque)

-NewGetRemove

<Sites> <Site> <Webs> <Web name=“test”> </Web> </Webs> </Site></Sites>

Page 30: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Étapes d’un projet SharePoint

Page 31: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Déploiement/Retrait des solutions WSPGet-SPSolution: Récupérer une solution existanteAdd/Remove-SPSolution: Ajouter/Supprimer une solution Install/Uninstall-SPSolution: Installer ou rétracter une solution

Activation/Désactivation de features Enable-SPFeature: Activer une feature Disable-SPFeature: Désactiver une featurePrend le Display Name ou le GUID (SharePoint 2010, SharePoint 2013)

SharePoint Solution Deployer http://spsd.codeplex.com/

Déploiement des « Apps » OnPremise (ici)SPAppInstance, SPApp, SPAppPackage

Penser à intégrer vos scripts de déploiement dans vos solutions Visual Studio (Solution items)

4-Déploiement des solutions

Page 32: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Démo

Objectif: Activer des features à différents niveaux grâce à un fichier de configuration et PowerShell

Page 33: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Étapes d’un projet SharePoint

Page 34: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Configurations particulières courantes:

RechercheAjouter des sources de contenuAjouter des propriétés gérées liées à votre applicationetc…

Métadonnées géréesCréer une arborescence de termes dans le magasin

Import-SPTerms de Gary Lapointe

Créer une colonne de site mappée sur un terme du magasin

5-Configuration des solutions

Page 35: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Démo

Objectif: Importer un magasin de termes et créer une colonne de site mappée sur un des termes

Page 36: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Installation complète d’une ferme SharePointAutoSPInstaller

La référence pour l’installation d’une ferme SharePoint entièrement scriptée par PowerShell

Un seul xml de configuration pour l’installation (mono serveur ou multiserveurs)

Nécessite une bonne connaissance de SharePoint et PowerShell pour être optimisé au maximum

La configuration par défaut est parfois suffisante pour des machines de développement

Fonction génériques réutilisables

Existe la version UI http://autospinstallergui.codeplex.com/ facilitant la configuration

Personnalisations possiblesGestion des logs Séparation et isolation des scriptsInclusion de SQL ServerInclusion de l’installation et la configuration scriptée de SQL

Server Ajout des rôles Windows

Outils existants

Page 38: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Démo

Objectif: Survol rapide de la configuration et du fonctionnement de AutoSPInstaller pour vos

environnements

Page 39: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Tout au long du cycle de vie d’une plateforme SharePoint

Backup/Restore (Cmdlets SharePoint)

Export un site, une liste ou une bibliothèque

Backup de collections de sites

Un mot sur les tâches d’administration

Backup-SPSite http://server_name/sites/site_name -Path C:\site_name.bak

Export-SPWeb http://site –Path "site export.cmp"

Page 40: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Conclusion

Osez le script ! Script = Investissement sur le long terme Rapport gain/temps de réalisation à évaluer

Tout ce qui est faisable par UI est faisable par PowerShell (voire plus…)

Très peu de changements en 2013 par rapport à 2010

Nécessite un minimum de connaissances en programmation objet et de rigueur

Outils et scripts existants

Utilisez Windows Azure pour tester les procédures d’installations

Page 41: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Ressources

Windows Azure et SharePoint:http://www.windowsazure.com/en-us/manage/windows/other-resources/sharepoint-on-azure

/

Testez vous-mêmes Windows Azure:http://aka.ms/90jours

Page 42: Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à PoweShell

Merci

Évaluez notre session!Merci!