SharePoint Provider Hosted App Installer

PHAI_Installation

Für Softwareentwickler ist die Installation einer SharePoint Provider Hosted App / Add-In recht aufwendig. Um diesen Vorgang zu erleichtern, habe ich auf GitHub ein Projekt erstellt, das einen Installer zur Verfügung stellt.

Voraussetzung

In einem früheren Artikel habe ich bereits beschrieben, wie man die App / Add-In Infrastruktur in einer on-premise Umgebung bereit stellt: SharePoint Add-In Modell einrichten / App Store

Verwendung

Ich habe versucht das Skript generisch zu erstellen, so das ein Großteil auch für andere Applikationen wiederverwendet werden können. Folgende Komponenten installiert das Skript:

  • IIS Website inkl. SSL und Host Header
  • IIS Application Pool
  • IIS Subwebs (optional)
  • SQL Datenbank
  • NTFS Verzeichnisstruktur
  • Installation der Applikation mithilfe von msdeploy, d.h. die Quelle ist ein zugrundeliegendes Visual Studio Paket
  • SharePoint S2S (Server to Server) Trust mit selbstsigniertem Zertifikat
  • Aktiviert oAuth über http (optional)
  • Passt das .App File an und lädt es im App Catalog hoch (sofern dieser existiert)

Anpassung

Die Anpassung erfolgt in zwei Schritten, das eigentlich Skript Install-ProviderHostedApp.ps1 muss nur einmalig auf die Applikation angepasst werden.

Die XML-Datei muss pro Zielumgebung, pro SharePoint angepasst werden und enthält URL, Service Account etc.

Skript

Einmal im Skript gibt es die Namen, die verwendet werden sollen. Die Variable

  • $appName = Applikationsname inkl. Verzeichnisstruktur, IIS Website Name etc.
  • $appInternalName = Name für das Zertifikat S2S
  • $AppFileName = Name der .app Datei, die im Verzeichnis liegt
  • $Solutions2Share führt Aktionen aus, die grundsätzlich nicht für jedermann notwendig sind.
# Installer for App
# Please specify your variables or App Name here
$appName = 'Meeting Manager'
$appInternalName = 'MeetingManager' #No spaces nor special characters, used for certificates
$AppFilename = 'Solutions2Share Meeting Manager'
$Solutions2Share = $true #Solutions2Share Meeting Manager specifics

XML

Die XML Datei selbst enthält Details zur Umgebung, also Installationsparameter und sieht in etwa so aus:

<?xml version="1.0" encoding="utf-8" ?>
<ProviderHostedApp>
	<General>
		<ServiceAccount>contoso\meetingmanager</ServiceAccount>
		<FQDN>meetingmanager.contoso.com</FQDN>
		<InstallationDirectory>C:\Program Files\Solutions2Share\Meeting Manager</InstallationDirectory>
		<AllowOAuthoverHTTP>true</AllowOAuthoverHTTP>
	</General>
	<SharePoint>
		<SPSite>https://portal2016.contoso.com</SPSite>
		<!-- If Upgrading, please provide the ClientID otherwise a new one will generated -->
		<ClientID/>
	</SharePoint>
	<Database>
		<DBServer>Contoso-SQL\SP2016</DBServer>
		<DBServerPort>1433</DBServerPort>
		<!-- Check with your DEV if Alias is supported
		The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
		<DBAlias Create="false">
			<DBInstance>Contoso-SQL\SP2016</DBInstance>
			<DBPort>1433</DBPort>
		</DBAlias>
		<!-- The DBPrefix is prepended to all database names. e.g. If you set this to TEST, your config DB will be TEST_ConfigDB. If you set the prefix to localhost, script will prepend each database with the name of the server on which the script is run.  Leave this blank for no prefix. NOTE: If you are installing a multi-server farm, it is recommended that you do not use localhost as services provisioned on different servers will have different prefixes. -->
		<DBPrefix>PRD_App_</DBPrefix>
		<!-- Valid Type = Generic or for Solutions2Share MM, MMHF, IM, IMHF -->
		<Databasename Name="MyApp" Type="Generic" />
	</Database>
</ProviderHostedApp>

Aufruf

Die Installation kann gestartet werden, wenn die alle Dateien in einem Verzeichnis liegen. Der Aufruf erfolgt mit:

.\Install-ProviderHostedApp.ps1 -InputFile "D:\ProviderHostedAppInstaller\Install-ProviderHostedApp-Config.xml"

Fragen und Feedback

Bitte verwendet GitHub für Fragen oder bei Problemen. Sollte das nicht funktionieren, gerne hier über die Website.

Teilen

Autor: Dennis Hobmaier

Dennis Hobmaier ist Consultant - Digital Workspace bei Insight Technology Solutions GmbH. Er hat über 15 Jahre Erfahrung in IT-Enterprise Umgebung aller Größenordnungen und bedient Kunden aus den unterschiedlichsten Branchen. Als MCSE SharePoint hat er tiefgreifende Kenntnisse in den Bereichen Microsoft Active Directory, Windows, Azure, SharePoint und Office 365. Gerne teilt er seine Projekterfahrung mit Ihnen.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .