Integration Server Code Deployment using Azure Devops, ABE & webMethods Deployer

In this article, we use Microsoft’s self-hosted agent on the build server where ABE and webMethods deployer are installed. Then we use ABE ANT targets and deployer to create and deploy IS packages from a git repository to the target Integration Server orchestrated by Azure DevOps.

Prerequisite

webMethods Integration Server Build Server installed along with Deployer and Asset Build Environment.

Installation Steps

  1. We start with the Self-Hosted Agent Installation & Configuration on the build server

  2. Log in to the Azure DevOps portal (dev.azure.com) and select Organization settings.

  3. Navigate to Pipelines->Agent Pools->Default and select New Agent
    image

  4. The steps to set up the agent will appear as shown below.
    image

  5. Depending on the Build Server machine type, download the agent software in the build server.

  6. For configuring the agent after downloading, please follow the steps provided in the below URL
    How to create and configure AzureDevops Pipelines Agent
    Refer to the “Configuring a self–hosted agent” section

  7. Additionally, one might need Personal Access Token (PAT) during agent configuration, which can be obtained from Azure DevOps Portal-> User Settings. Click on New Token and provide the desired permissions, scope, and expiry date for the token.
    image image

  8. Once the agent is installed, configured, and started, navigate back to Pipelines->Agent Pools->Default in the Azure DevOps Portal. The agent should be enabled and online.
    image

  9. Once the agent is installed and online, we proceed with a new project and pipeline creation.

  10. Navigate to dev.azure.com home page and create your project.
    7

  11. Create a new pipeline, select the desired repository (Azure repo, git, bitbucket, svn etc.) which stores the required IS packages and add an empty/agent job and select “Default” agent pool in the Agent Selection.
    image

  12. On the Agent job, select add and Add a “Power shell script” step. In the Power shell script, select inline and provide the command to execute the build creation. Please note that Azure DevOps takes care of checking out the IS packages to the agent work directory.
    image
    Before you execute this step, you need to configure the below properties at a minimum in the build.properties (<SAG_HOME>\common\AssetBuildEnvironment\master_build\build.properties) for your build to run.
    build.output.dir= Directory Path to save your builds.
    build.source.dir = Checkout location in the Agent Work directory.
    enable.build.IS = true (for IS assets deployment)
    Additionally, you can set logging and archival settings as desired.
    Based on the properties set in the build.properties file, build.bat generates the composites in the output directory given above.

  13. Once the build is created, we proceed with deployer project creation and code deployment using Deployer CLI.

  14. Add another “Power shell script” step. In the Power shell script, select inline and provide the command to execute the project creation in Deployer for a specific project automator file.
    image
    Script user in this step -
    <SAG_HOME>\IntegrationServer\instances\<instanceName>\packages\WmDeployer\bin\projectAutomator.bat <Path to project Automator file>
    Project Automator file can be created using the below sample in git hub or even exported from Deployer UI for an existing project and modifying as per the repository location and target server details.
    sagdevops-ci-assets/ProjectSpecificationTemplate.xml at master · SoftwareAG/sagdevops-ci-assets · GitHub
    Also, we have saved the project automator file in the same git repo as that of the packages and use it from the checkout folder for this step.
    We can even add the deployer targets to build.xml file and execute the build.bat with the specific target.
    In this case, additional settings required for the deployer should be added to build.properties file.

  15. Then add another Power shell script for project deployment created in the previous step.
    image
    Script used in this step –
    <SAG_HOME>\IntegrationServer\instances\<instanceName>\packages\WmDeployer\bin\Deployer.bat --deploy -project <projectName> -dc <deployment Candidate Name> -host <Deployer Host> -port <deployer Port> -user <Username> -pwd <Password> -force

  16. Once these steps are configured, execute the pipeline to checkout the code from the git repo, create the build and deploy the build to the target server specified in the project automator file.
    image

Notes:

  • This article provides on basic deployment of IS packages. Additional configuration and customization can be done in the ABE, build.xml and even in the project.automator file as per the desired deployment needs.
  • Also, the pipeline jobs can be scheduled or invoked on demand using the REST API of Azure Devops.
  • Similar steps can be followed for other code deployment as well like BPM, MWS assets etc.
  • Self-Hosted Agent on Azure VMs is one of the approaches for invoking ABE and deployer from Azure Devops. Additionally, we can enable Remote Management (WinRM or Remote SSH) on the build server and execute the Power shell using “Power shell on target machines” in Azure Devops.
1 Like