Standalone BizTalk installation

 Uncategorized  Comments Off on Standalone BizTalk installation
Oct 302015
 

So a client just purchased our ESB Vision product and one of the things that they wanted me to do was to build a silent install of BizTalk to be deployed on their developer machines. Here are the requirements

  • The dev machines are running Windows 7
  • IIS needs to be installed 
  • SQL Server 2012 SP2 needs to be installed
  • BizTalk 2013r2 needs to be installed
  • All LOB adapters need to be installed
  • Host Integration needs to be installed
  • ESB Toolkit needs to be installed
  • SQL needs to be running as the NT Service accounts

So here is the challenge:

  • Win7 doesn’t have an out of the box way of mounting an ISO
  • Not only does Visual Studio 2013 need to be installed, but also CU5
  • The ESB requires Analysis Server to be properly configured with the appropriately configured
  • The hotfixes that needs to be installed don’t lend themselves easily to ‘silent’ installations

So to overcome the inability to mount iso files, I downloaded 7-Zip and for my 64bit Windows 7 OS, I chose the 64bit version

I downloaded all of the installation bits into the C:\Images folder.

So in Windows 7 to install IIS I ran the following command:

DISM /Online /Enable-Feature /FeatureName:IIS-ApplicationDevelopment /FeatureName:IIS-ASP /FeatureName:IIS-ASPNET /FeatureName:IIS-BasicAuthentication /FeatureName:IIS-CommonHttpFeatures /FeatureName:IIS-CustomLogging /FeatureName:IIS-HealthAndDiagnostics /FeatureName:IIS-HostableWebCore /FeatureName:IIS-HttpCompressionDynamic /FeatureName:IIS-HttpCompressionStatic /FeatureName:IIS-HttpErrors /FeatureName:IIS-HttpLogging /FeatureName:IIS-HttpRedirect /FeatureName:IIS-HttpTracing /FeatureName:IIS-IIS6ManagementCompatibility /FeatureName:IIS-IISCertificateMappingAuthentication /FeatureName:IIS-IPSecurity /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-LegacyScripts /FeatureName:IIS-LegacySnapIn /FeatureName:IIS-LoggingLibraries /FeatureName:IIS-ManagementConsole /FeatureName:IIS-ManagementScriptingTools /FeatureName:IIS-ManagementService /FeatureName:IIS-Metabase /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-Performance /FeatureName:IIS-RequestFiltering /FeatureName:IIS-RequestMonitor /FeatureName:IIS-Security /FeatureName:IIS-ServerSideIncludes /FeatureName:IIS-StaticContent /FeatureName:IIS-URLAuthorization /FeatureName:IIS-WebDAV /FeatureName:IIS-WebServer /FeatureName:IIS-WebServerManagementTools /FeatureName:IIS-WebServerRole /FeatureName:IIS-WindowsAuthentication /FeatureName:IIS-WMICompatibility /FeatureName:WAS-ConfigurationAPI /FeatureName:WAS-NetFxEnvironment /FeatureName:WAS-ProcessModel /FeatureName:WAS-WindowsActivationService

(yes, I might not needed to install all of the features)

The next thing I needed to do was install Visual Studio and CU5. I did this by running the following commands (which unpacked, installed, and subsequently deleted the install data):

“C:\Program Files\7-Zip\7z.exe” x “C:\Images\en_visual_studio_premium_2013_x86_dvd_3175275.iso” -oc:\Images\VS\ * -r -y

c:\Images\VS\vs_premium.exe /adminfile C:\Images\AdminDeployment.xml /norestart /Passive

rmdir c:\Images\VS /S /Q

“C:\Program Files\7-Zip\7z.exe” x “C:\Images\mu_visual_studio_2013_update_5_x86_dvd_6815499.iso” -oc:\Images\VSsp5\ * -r -y

C:\Images\VSsp5\VS2013.5.exe /norestart /Passive

rmdir c:\Images\VSsp5 /S /Q

The next was installing SQL Server and the CU 8 

“C:\Program Files\7-Zip\7z.exe” x “C:\Images\en_sql_server_2012_enterprise_edition_with_service_pack_2_x64_dvd_4685849.iso” -oc:\Images\SQL\ * -r -y

C:\Images\SQL\setup.exe /ACTION=”Install” /SAPWD=”P4ssw0rd!” /SQLSYSADMINACCOUNTS=%USERDOMAIN%\%USERNAME% /INDICATEPROGRESS=”True” /ENU=”True” /QS=”True” /UpdateEnabled=”True” /ERRORREPORTING=”False” /UPDATEENABLED=”True” /FEATURES=SQLENGINE,AS,IS,SSMS,ADV_SSMS /UpdateSource=”MU” /HELP=”False” /INDICATEPROGRESS=”True” /X86=”False” /INSTALLSHAREDDIR=”C:\Program Files\Microsoft SQL Server” /INSTALLSHAREDWOWDIR=”C:\Program Files (x86)\Microsoft SQL Server” /INSTANCENAME=”MSSQLSERVER” /SQMREPORTING=”False” /INSTANCEID=”MSSQLSERVER” /INSTANCEDIR=”C:\Program Files\Microsoft SQL Server” /AGTSVCACCOUNT=”NT Service\SQLSERVERAGENT” /AGTSVCSTARTUPTYPE=”Automatic” /ISSVCSTARTUPTYPE=”Automatic” /ISSVCACCOUNT=”NT Service\MsDtsServer110″ /ASSVCACCOUNT=”NT Service\MSSQLServerOLAPService” /ASSVCSTARTUPTYPE=”Automatic” /ASCOLLATION=”Latin1_General_CI_AS” /ASDATADIR=”C:\Program Files\Microsoft SQL Server\MSAS12.MSSQLSERVER\OLAP\Data” /ASLOGDIR=”C:\Program Files\Microsoft SQL Server\MSAS12.MSSQLSERVER\OLAP\Log” /ASBACKUPDIR=”C:\Program Files\Microsoft SQL Server\MSAS12.MSSQLSERVER\OLAP\Backup” /ASTEMPDIR=”C:\Program Files\Microsoft SQL Server\MSAS12.MSSQLSERVER\OLAP\Temp” /ASCONFIGDIR=”C:\Program Files\Microsoft SQL Server\MSAS12.MSSQLSERVER\OLAP\Config” /ASPROVIDERMSOLAP=”1″ /ASSYSADMINACCOUNTS=”FCBTwin7\estott” /ASSERVERMODE=”MULTIDIMENSIONAL” /COMMFABRICPORT=”0″ /COMMFABRICNETWORKLEVEL=”0″ /COMMFABRICENCRYPTION=”0″ /MATRIXCMBRICKCOMMPORT=”0″ /SQLSVCSTARTUPTYPE=”Automatic” /FILESTREAMLEVEL=”0″ /ENABLERANU=”False” /SQLCOLLATION=”SQL_Latin1_General_CP1_CI_AS” /SQLSVCACCOUNT=”NT Service\MSSQLSERVER” /SECURITYMODE=”SQL” /ADDCURRENTUSERASSQLADMIN=”False” /TCPENABLED=”1″ /NPENABLED=”0″ /BROWSERSVCSTARTUPTYPE=”Automatic” /IAcceptSQLServerLicenseTerms=”True” /SQLUSERDBLOGDIR=”C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log” /SQLTEMPDBDIR=”C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Temp\Data” /SQLTEMPDBLOGDIR=”C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Temp\Log” /BROWSERSVCSTARTUPTYPE=”Automatic”

rmdir c:\Images\SQL /S /Q

“C:\Program Files\7-Zip\7z.exe” x C:\Images\487325_intl_x64_zip.exe -oc:\Images\SQLSP8\ * -r -y

C:\Images\SQLSP8\SQLServer2012-KB3082561-x64.exe /quiet /IAcceptSQLServerLicenseTerms=”True” /INDICATEPROGRESS=”True”

rmdir c:\Images\SQLSP8 /S /Q

Now that SQL was installed, I can install BizTalk, LOB adapters, and the ESB Toolkit by running the following command, I needed to reference the BizTalkConfig.xml in the setup.

“C:\Program Files\7-Zip\7z.exe” x “C:\Images\en_biztalk_server_2013_r2_enterprise_edition_x86_and_x64_dvd_4434625.iso” -oc:\Images\BTS\ * -r -y

“C:\Images\BTS\BizTalk Server\setup.exe” /PASSIVE /NORESTART /CABPATH C:\Images\BtsRedistWin7EN64.cab /ADDLOCAL ALL

“C:\Program Files (x86)\Microsoft BizTalk Server 2013 R2\Configuration.exe” /S C:\Images\BizTalkConfig.xml

msiexec.exe /i “C:\Images\BTS\BizTalk Server\LOB\Msi\Microsoft_BizTalk_Adapters_for_Enterprise_Applications.msi” /norestart /qn /lv c:\lob.log

msiexec.exe /i “C:\Images\BTS\BizTalk Server\ASDK_x86\AdapterFramework.msi” /quiet MUOPTIN=”Yes”

msiexec.exe /i “C:\Images\BTS\BizTalk Server\ASDK_x64\AdapterFramework64.msi” /quiet MUOPTIN=”Yes”

msiexec.exe /i “C:\Images\BTS\BizTalk Server\AdapterPack_x86\AdaptersSetup.msi” /qn

msiexec.exe /i “C:\Images\BTS\BizTalk Server\AdapterPack_x64\AdaptersSetup64.msi” /qn

msiexec.exe /i “C:\Images\BTS\BizTalk Server\ESBT_x64\BizTalk ESB Toolkit 2.3.msi” /qn

rmdir c:\Images\BTS /S /Q

Now it is time for HIS to be installed. I ran the following command

“C:\Program Files\7-Zip\7z.exe” x “C:\Images\en_host_integration_server_2013_enterprise_edition_x86_and_x64_cd_2642074.iso” -oc:\Images\HIS\ * -r -y

c:\Images\HIS\setup.exe /InstallPlatform /s “C:\Images\HISConfix.xml”

rmdir c:\Images\HIS /S /Q

Next I needed to modify the SQL Jobs so that the purge and archive was ‘working’ as expected. I needed to create a folder where the contents were compressed and then reconfigure the job. For future steps, I needed to add the NT SERVICE\MSSQLServerOLAPService as a sysadmin. I ran the following command

sqlcmd -s (local) -i C:\Images\UpdateSQLJob.sql

To add a new user as an admin to SSAS, you have to import a xmla file. Since my account was already there, I needed to include by my and the NT SERVICE\MSSQLServerOLAPService to the file. I did this by running a powershell command against the template xmla file. I also needed to wait for the powershell script to finish running before going on. The @ping 127.0.0.1 command waits for 5 seconds to finish before going on.

cd C:\Images

powershell -Command “(gc Role.xmla) -replace ‘THISSERVER’,’%COMPUTERNAME%’ | Out-File CurrentRole.xmla”

powershell -Command “(gc CurrentRole.xmla) -replace ‘CURRENTUSER’,’%USERDOMAIN%\%USERNAME%’ | Out-File CurrentRole.xmla”

powershell -NoProfile -ExecutionPolicy Bypass -Command “& {Start-Process Powershell -Argumentlist ‘-NoProfile -ExecutionPolicy Bypass -File CreateUser.ps1’ -Verb RunAs}”;

@ping 127.0.0.1 -n 6 > nul

@del C:\Images\CurrentRole.xmla /f /q

The next, I needed to apply the two bam activities that come as part of the toolkit

“C:\Program Files (x86)\Microsoft BizTalk Server 2013 R2\Tracking\bm.exe” deploy-all -definitionfile:”C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit\Bam\Microsoft.BizTalk.ESB.BAM.Exceptions.xml”

“C:\Program Files (x86)\Microsoft BizTalk Server 2013 R2\Tracking\bm.exe” deploy-all -definitionfile:”C:\Program Files (x86)\Microsoft BizTalk ESB Toolkit\Bam\Microsoft.BizTalk.ESB.BAM.Itinerary.xml”

The last part is applying the cumulative update for BizTalk

“C:\Program Files\7-Zip\7z.exe” x C:\Images\485668_ENU_i386_zip.exe -oc:\Images\BTSCU1\ * -r -y

C:\Images\BTSCU1\BizTalk2013R2_CU1-KB3055198-ENU.exe /quiet

 

Here is the content of the needed files:

AdminDeployment.xml

<?xml version=”1.0″ encoding=”utf-8″?>

<AdminDeploymentCustomizations xmlns=”http://schemas.microsoft.com/wix/2011/AdminDeployment”>

  <BundleCustomizations TargetDir=”default” NoWeb=”default”/>

  <SelectableItemCustomizations>

    <SelectableItemCustomization Id=”Blend” Hidden=”no” Selected=”no” />

    <SelectableItemCustomization Id=”LightSwitch” Hidden=”no” Selected=”no” />

    <SelectableItemCustomization Id=”VC_MFC_Libraries” Hidden=”no” Selected=”yes” />

    <SelectableItemCustomization Id=”OfficeDeveloperTools” Hidden=”no” Selected=”no” />

    <SelectableItemCustomization Id=”SQL” Hidden=”no” Selected=”yes” />

    <SelectableItemCustomization Id=”WebTools” Hidden=”no” Selected=”yes”/>

    <SelectableItemCustomization Id=”SilverLight_Developer_Kit” Hidden=”no” Selected=”no” />

    <SelectableItemCustomization Id=”Win8SDK” Hidden=”no” Selected=”no” />

    <SelectableItemCustomization Id=”WindowsPhone80″ Hidden=”no” Selected=”no” />

    <SelectableItemCustomization Id=”BlissHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”HelpHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”IntelliTraceHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”LocalDBHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”NetFX4Hidden” Selected=”yes” />

    <SelectableItemCustomization Id=”NetFX45Hidden” Selected=”yes” />

    <SelectableItemCustomization Id=”PortableDTPHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”PreEmptiveDotfuscatorHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”PreEmptiveAnalyticsHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”ProfilerHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”ReportingHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”SDKTools3Hidden” Selected=”yes” />

    <SelectableItemCustomization Id=”SDKTools4Hidden” Selected=”yes” />

    <SelectableItemCustomization Id=”Silverlight5DRTHidden” Selected=”no” />

    <SelectableItemCustomization Id=”SQLCEHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”SQLCLRTypesHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”SQLDACHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”SQLDOMHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”SQLSharedManagementObjectsHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”StoryboardingHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”TSQLHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”VCCompilerHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”VCCoreHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”VCDebugHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”VCDesigntimeHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”VCExtendedHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”WinJSHidden” Selected=”yes” />

    <SelectableItemCustomization Id=”WinSDKHidden” Selected=”yes” />

  </SelectableItemCustomizations>

</AdminDeploymentCustomizations>