BTDF / DeploymentFramework

The Deployment Framework for BizTalk is the most powerful and customizable, yet easy-to-use toolkit for deploying and configuring your BizTalk solutions.
MIT License
53 stars 24 forks source link

How to Integrate BTDF with TFS Build where build definition can deploy BizTalk application at Remote/Test server directly #340

Closed tfabraham closed 6 years ago

tfabraham commented 6 years ago

Scenaro:

I would like to integrate BTDF with TFS and from Build definition I would like to queue my build in test or other environments where generated MSI should be copied in Drop folder and simultaneously application should deploy also there 2.I am able to copy and drop Msi at drop location at remote servers but not able to deploy application at remote servers(test) My Approach 3.I have written one of the Batch file and PowerShell script which is responsible to deploy the Application at Test server 4.My batch file and ps1 file are kept at test server at drop location where msi are being copied after successful build 5.I am calling PowerShell script inside the Batch file and passing there parameters a. MSI path (located in test server) b. Installation Path c. Environment (Test

I calling batch file in the invoke process of the Build Observations 1.When I am manually running above batch file in test server then Application is successfully getting deployed there When I am Queuing same from Build definition (calling batch file in invoke process) then I am getting below error Install-BizTalkApplication : Installing \ms-biz-testserver\Drop\BTDF_Dev\BTDF_Dev_20140524.1\BTDFDemo-1.0.0.msi failed!, Exit Code: 1638 At \ms-biz-testserver\Drop\Install-BizTalkApplication.ps1:151 char:1

Install-BizTalkApplication $MsiFile $ApplicationInstallPath $Environment

CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException+ FullyQualifiedErrorId : crosoft.PowerShell.Commands.WriteErrorException,Install-BizTalkApplication

I am not sure whether my approach is right or wrong , I would highly appreciate If somebody help me on it because I am completely stuck here and not getting correct approach

Thanks KK

This work item was migrated from CodePlex

CodePlex work item ID: '10641' Vote count: '1'

tfabraham commented 6 years ago

[tfabraham@6/2/2014] It sounds like you are just having the build server directly run the MSI, which happens to be on a file share on the BizTalk server. That's going to try to install the MSI onto the build server. You need to use PowerShell remoting and execute all the commands remotely on the BizTalk server(s).

There are discussions about this in the Discussions area. http://biztalkdeployment.codeplex.com/discussions/434927 http://biztalkdeployment.codeplex.com/discussions/350338

tfabraham commented 6 years ago

[YASH_CODEPLEX@6/3/2014] Hi tfabraham

Thank you very much for quick reply

now i am trying PowerShell remoting and for it i have called my ps1. file in Invoke process of the default XAML and given path in file name like ("\ms-biz-c20939\Drop\Install-BizTalkApplication.ps1") where PS1 file is located at sahred location of my VM where application should be deplyed ,for testing purpose i have hardcoded all parameter but I am getting error as __The specified executable is not a valid application for this OS platform.

I am not sure what I am missing ,please help me on this

thanks KK .


tfabraham commented 6 years ago

[tfabraham@6/3/2014] Since PowerShell Remoting is not a feature of the Deployment Framework for BizTalk, I can't offer support for it here. You'd have better luck in the MSDN or TechNet Forums at Microsoft.

I can say, however, that the error you listed might occur if you are trying to run a 64-bit executable on a 32-bit OS.

tfabraham commented 6 years ago

[YASH_CODEPLEX@6/5/2014] Thanks

After much analysis and going through Log i got below root cause that is genarated MSI is not not digitally signed and thats why from Build definition while deploying it is failed .but when i am calling directly ps1 file from build sever with Invoke method on powersshell window ,it is executing sucessfully.

I have tried various option by seting executionpolicy of poweshell like unrestricted and bypass but still getting below problem

now my question is how digtial signature can be disable not sure

any kind of help would be very fruitful for me

KEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 3: 2 MSI (s) (38:C0) [20:18:54:892]: File will have security applied from OpCode. MSI (s) (38:C0) [20:18:54:901]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1 MSI (s) (38:C0) [20:18:54:901]: SOFTWARE RESTRICTION POLICY: Verifying package --> '\ms-biz-XXXXX\Drop\BTDF_Dev\BTDF_Dev_20140524.1\BTDFDemo-1.0.0.msi' against software restriction policy MSI (s) (38:C0) [20:18:54:901]: Note: 1: 2262 2: DigitalSignature 3: -2147287038 MSI (s) (38:C0) [20:18:54:901]: SOFTWARE RESTRICTION POLICY: \ms-biz-XXXXX\Drop\BTDF_Dev\BTDF_Dev_20140524.1\BTDFDemo-1.0.0.msi is not digitally signed MSI (s) (38:C0) [20:18:54:901]: SOFTWARE RESTRICTION POLICY: \ms-biz-XXXXX\Drop\BTDF_Dev\BTDF_Dev_20140524.1\BTDFDemo-1.0.0.msi is permitted to run because the user token authorizes execution (system or service token).

THANKS KK

tfabraham commented 6 years ago

[tfabraham@6/5/2014] I don't think that's your issue. It's just stating that it's not signed, but the next line says "is permitted to run", so that's a good thing. I think you'll have to keep digging. Maybe this is where these logs came from, but msiexec.exe has logging parameters to create a detailed log file. Running msiexec.exe will display all the possible parameters.

tfabraham commented 6 years ago

[YASH_CODEPLEX@6/9/2014] Thank you very much for reply

After analysis it looks like MSI Installer policy problem unfortunentely not able to hunt it but below is log and probably after looking into this you can suggest me

For your information if I am executing same PS as Administartor at my remoteserver localy then it is working fine but not from BuildDefinition

=== Verbose logging started: 6/9/2014 14:24:38 Build type: SHIP UNICODE 5.00.9200.00 Calling process: C:\Windows\system32\msiexec.exe ===

MSI (c) (B8:A0) [14:24:38:233]: Resetting cached policy values

MSI (c) (B8:A0) [14:24:38:233]: Machine policy value 'Debug' is 0

MSI (c) (B8:A0) [14:24:38:233]: *** RunEngine:

       ******* Product: \\RemoteServer\Drop\BTDF_Dev\BTDF_Dev_20140609.12\BTDFDemo-1.0.0.msi

       ******* Action: 

       ******* CommandLine: **********

MSI (c) (B8:A0) [14:24:38:234]: Client-side and UI is none or basic: Running entire install on the server.

MSI (c) (B8:A0) [14:24:38:234]: Grabbed execution mutex.

MSI (c) (B8:A0) [14:24:38:251]: Cloaking enabled.

MSI (c) (B8:A0) [14:24:38:251]: Attempting to enable all disabled privileges before calling Install on Server

MSI (c) (B8:A0) [14:24:38:254]: Incrementing counter to disable shutdown. Counter after increment: 0

MSI (s) (E4:3C) [14:24:38:259]: Running installation inside multi-package transaction \RemoteServer\Drop\BTDF_Dev\BTDF_Dev_20140609.12\BTDFDemo-1.0.0.msi

MSI (s) (E4:3C) [14:24:38:259]: Grabbed execution mutex.

MSI (s) (E4:38) [14:24:38:260]: Resetting cached policy values

MSI (s) (E4:38) [14:24:38:260]: Machine policy value 'Debug' is 0

MSI (s) (E4:38) [14:24:38:260]: *** RunEngine:

       ******* Product: \\RemoteServer\Drop\BTDF_Dev\BTDF_Dev_20140609.12\BTDFDemo-1.0.0.msi

       ******* Action: 

       ******* CommandLine: **********

MSI (s) (E4:38) [14:24:38:265]: Incrementing counter to disable shutdown. Counter after increment: 0

MSI (s) (E4:38) [14:24:38:266]: Machine policy value 'DisableUserInstalls' is 0

MSI (s) (E4:38) [14:24:38:286]: Note: 1: 2203 2: C:\Windows\Installer\inprogressinstallinfo.ipi 3: -2147287038

MSI (s) (E4:38) [14:24:38:289]: Incrementing counter to disable shutdown. Counter after increment: 1

MSI (s) (E4:38) [14:24:38:293]: SRSetRestorePoint skipped for this transaction.

MSI (s) (E4:38) [14:24:38:293]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: 0

MSI (s) (E4:38) [14:24:38:293]: Note: 1: 1402 2: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 3: 2

MSI (s) (E4:38) [14:24:38:349]: File will have security applied from OpCode.

MSI (s) (E4:38) [14:24:38:397]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1

MSI (s) (E4:38) [14:24:38:409]: SOFTWARE RESTRICTION POLICY: Verifying package --> '\RemoteServer\Drop\BTDF_Dev\BTDF_Dev_20140609.12\BTDFDemo-1.0.0.msi' against software restriction policy

MSI (s) (E4:38) [14:24:38:409]: Note: 1: 2262 2: DigitalSignature 3: -2147287038

MSI (s) (E4:38) [14:24:38:409]: SOFTWARE RESTRICTION POLICY: \RemoteServer\Drop\BTDF_Dev\BTDF_Dev_20140609.12\BTDFDemo-1.0.0.msi is not digitally signed

MSI (s) (E4:38) [14:24:38:409]: SOFTWARE RESTRICTION POLICY: \RemoteServer\Drop\BTDF_Dev\BTDF_Dev_20140609.12\BTDFDemo-1.0.0.msi is permitted to run because the user token authorizes execution (system or service token).

MSI (s) (E4:38) [14:24:38:409]: MSCOREE not loaded loading copy from system32

MSI (s) (E4:38) [14:24:38:412]: End dialog not enabled

MSI (s) (E4:38) [14:24:38:412]: Original package ==> \RemoteServer\Drop\BTDF_Dev\BTDF_Dev_20140609.12\BTDFDemo-1.0.0.msi

MSI (s) (E4:38) [14:24:38:412]: Package we're running from ==> C:\Windows\Installer\23c92c3f.msi

MSI (s) (E4:38) [14:24:38:412]: APPCOMPAT: Uninstall Flags override found.

MSI (s) (E4:38) [14:24:38:413]: APPCOMPAT: Uninstall VersionNT override found.

MSI (s) (E4:38) [14:24:38:413]: APPCOMPAT: Uninstall ServicePackLevel override found.

MSI (s) (E4:38) [14:24:38:413]: APPCOMPAT: looking for appcompat database entry with ProductCode '{74C6E681-A586-4889-82C7-C80E3AEB2601}'.

MSI (s) (E4:38) [14:24:38:413]: APPCOMPAT: no matching ProductCode found in database.

MSI (s) (E4:38) [14:24:38:416]: Machine policy value 'DisablePatch' is 0

MSI (s) (E4:38) [14:24:38:416]: Machine policy value 'AllowLockdownPatch' is 0

MSI (s) (E4:38) [14:24:38:416]: Machine policy value 'DisableLUAPatching' is 0

MSI (s) (E4:38) [14:24:38:416]: Machine policy value 'DisableFlyWeightPatching' is 0

MSI (s) (E4:38) [14:24:38:417]: APPCOMPAT: looking for appcompat database entry with ProductCode '{74C6E681-A586-4889-82C7-C80E3AEB2601}'.

MSI (s) (E4:38) [14:24:38:417]: APPCOMPAT: no matching ProductCode found in database.

MSI (s) (E4:38) [14:24:38:417]: Transforms are not secure.

MSI (s) (E4:38) [14:24:38:417]: PROPERTY CHANGE: Adding MsiLogFileLocation property. Its value is '\RemoteServer\InstalledAopplications\testlog.txt'.

MSI (s) (E4:38) [14:24:38:417]: Command Line: INSTALLDIR=\RemoteServer\InstalledAopplications REBOOT=ReallySuppress CURRENTDIRECTORY=C:\Windows\system32 CLIENTUILEVEL=3 CLIENTPROCESSID=5560

MSI (s) (E4:38) [14:24:38:417]: PROPERTY CHANGE: Adding PackageCode property. Its value is '{CB1A9A9E-859C-4BD0-B24C-F1025D318B4F}'.

MSI (s) (E4:38) [14:24:38:417]: Product Code passed to Engine.Initialize: ''

MSI (s) (E4:38) [14:24:38:417]: Product Code from property table before transforms: '{74C6E681-A586-4889-82C7-C80E3AEB2601}'

MSI (s) (E4:38) [14:24:38:417]: Product Code from property table after transforms: '{74C6E681-A586-4889-82C7-C80E3AEB2601}'

MSI (s) (E4:38) [14:24:38:417]: Product registered: entering maintenance mode

MSI (s) (E4:38) [14:24:38:418]: Determined that existing product (either this product or the product being upgraded with a patch) is installed per-machine.

MSI (s) (E4:38) [14:24:38:418]: Product {74C6E681-A586-4889-82C7-C80E3AEB2601} is admin assigned: LocalSystem owns the publish key.

MSI (s) (E4:38) [14:24:38:418]: Product {74C6E681-A586-4889-82C7-C80E3AEB2601} is managed.

MSI (s) (E4:38) [14:24:38:418]: MSI_LUA: Credential prompt not required, user is an admin

MSI (s) (E4:38) [14:24:38:418]: PROPERTY CHANGE: Adding ProductState property. Its value is '5'.

MSI (s) (E4:38) [14:24:38:418]: PROPERTY CHANGE: Adding ProductToBeRegistered property. Its value is '1'.

MSI (s) (E4:38) [14:24:38:418]: Entering CMsiConfigurationManager::SetLastUsedSource.

MSI (s) (E4:38) [14:24:38:426]: Specifed source is not already in a list.

MSI (s) (E4:38) [14:24:38:426]: User policy value 'SearchOrder' is 'nmu'

MSI (s) (E4:38) [14:24:38:428]: Machine policy value 'DisableBrowse' is 0

MSI (s) (E4:38) [14:24:38:428]: Machine policy value 'AllowLockdownBrowse' is 0

MSI (s) (E4:38) [14:24:38:428]: Adding new sources is allowed.

MSI (s) (E4:38) [14:24:38:428]: PROPERTY CHANGE: Adding PackagecodeChanging property. Its value is '1'.

MSI (s) (E4:38) [14:24:38:429]: Note: 1: 1729

MSI (s) (E4:38) [14:24:38:429]: Product: BTDFDemo for BizTalk 1.0.0 -- Configuration failed.

MSI (s) (E4:38) [14:24:38:430]: Windows Installer reconfigured the product. Product Name: BTDFDemo for BizTalk 1.0.0. Product Version: 1.0.0. Product Language: 1033. Manufacturer: Deployment Framework User. Reconfiguration success or error status: 1638.

MSI (s) (E4:38) [14:24:38:432]: MainEngineThread is returning 1638

MSI (s) (E4:3C) [14:24:38:433]: No System Restore sequence number for this installation.

Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.

{74C6E681-A586-4889-82C7-C80E3AEB2601}

MSI (s) (E4:3C) [14:24:38:436]: User policy value 'DisableRollback' is 0

MSI (s) (E4:3C) [14:24:38:436]: Machine policy value 'DisableRollback' is 0

MSI (s) (E4:3C) [14:24:38:436]: Incrementing counter to disable shutdown. Counter after increment: 0

MSI (s) (E4:3C) [14:24:38:436]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2

MSI (s) (E4:3C) [14:24:38:437]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2

MSI (s) (E4:3C) [14:24:38:437]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1

MSI (c) (B8:A0) [14:24:38:441]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1

MSI (c) (B8:A0) [14:24:38:443]: MainEngineThread is returning 1638

=== Verbose logging stopped: 6/9/2014 14:24:38 ===

tfabraham commented 6 years ago

[tfabraham@6/9/2014] Error code 1638 means ERROR_PRODUCT_VERSION - "Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs in Control Panel."

You already have the same MSI installed on the BizTalk server, probably from the manual testing that you described. You'd have to automate the full "undeploy existing app," "uninstall existing app MSI," "install new MSI," "deploy new app" process.

tfabraham commented 6 years ago

[YASH_CODEPLEX@6/30/2014] Hi Tfabraham

I am able resolve error 1638 by putting running msiexec.exe in administrative mode in PowerShell script now I have seen MSI is getting installed remotely by build definition on remote server ,but I observed application is not deploying on remote server instead of it is trying to undeploy and deploy on build server by btdf.proj file. So basically I have customize build definition and passing three parameter

  1. Path of ps1 file which have been kept at remote machine
  2. Installation path at remote machine
  3. Enverionment as Dev Because this PS1 is executing on remote machine so I am assuming it should deploy on same BizTalkMgmDB but this is not happing like this instead of it is trying to undeploy/deploy at Build servers’s BizTalkMgmDB
    Now I am not able to understand what I should I do to that it should deploy at remote BizTalk database Do you think ServerName should be set in SetfileGenerator.xml and $ServerName should be passed somewhere in BTDFProj file , I don’t have any idea on it ,please somebody help me on it
    thanks kk
tfabraham commented 6 years ago

[tfabraham@7/2/2014] It doesn't sound like you are using PowerShell Remoting to execute the script(s) on the BizTalk server. http://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/

This is not a supported feature of the Deployment Framework for BizTalk, so I'd suggest that you post in the TechNet Forum for PowerShell instead. http://social.technet.microsoft.com/Forums/windowsserver/en-US/home?forum=winserverpowershell

tfabraham commented 6 years ago

[UnknownUser@8/28/2014]

tfabraham commented 6 years ago

Issue closed by tfabraham with comment Closing since this is not a supported BTDF feature and the issue has been idle for a long time

Reason closed Not BTDF