Thursday, 13 October 2016

Change Azure VMSize for Acumatica Package

Hi All,

Past several years Microsoft has added multiple possible VM sizes (that you can check here) and they actually will not stop at this point.
So we need a good way to easily change some properties, if we want to have custom Azure configurations. Today i want to share with you the way how can you repack Acumatica Azure package.

To complete there steps you need to have installed:
  • Microsoft .Net 4.0+ for running PowerShell script.
  • Azure SDK 2.9+ You can download it here. Actually you just need a one single tool that will do packing - MicrosoftAzureAuthoringTools-x64.msi. Than you will be able to find a CSPack.exe tool by this path "C:\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.9\bin" CSPack can generate *.cspkg files, that are actually should be uploaded to Azure
  • 7zip.exe for extracting files
The idea about this approach, that Azure package is just a Zip file, that can be extracted. So we can extract it, change required configuration and pack it back.

Here you can see folders structure that I have prepared for this task:
  • In the "In" folder you should put your Acumatica Service.cspkg right there.
  • "Out" folder will contains repacked file in the end of process.
  • "Package" folder contains some tools and temporary extracted files required for the process.
    • "7za.exe" - 7zip console tool
    • "template.txt" list of system files required for packing
    • "properties.txt" list of additional required properties
  • "1-extract.bat" will extract data from standard package.
  • "2-pack.bat" will pack data back after modification of properties.
  • "ServiceDefinition.csdef" is Azure csdef file that contains some properties and actually includes vmsize that we need to change. 

So the entire scenario:
  1. Download Acumatica Azure Package from Acumatica web site.
  2. Put Package to "In" folder
  3. Run Extract.bat
  4. Change vmsize in the "ServiceDefinition.csdef" file to required size for your company
  5. Run Pack.bak 
  6. Get Result package from "Out" folder.

Code files:

Have a nice Installation.

No comments: