Deploy ArcGIS GeoEnrichment Server - Esri/arcgis-powershell-dsc GitHub Wiki

Deploying and Configuring ArcGIS GeoEnrichment Server with PowerShell DSC ArcGIS Module

Overview

This guide provides step-by-step instructions for deploying and configuring ArcGIS GeoEnrichment Server using the PowerShell DSC ArcGIS Module. The approach leverages Desired State Configuration (DSC) to automate installation, licensing, and integration with ArcGIS Enterprise environments, ensuring repeatable and reliable deployments.

Prerequisites

Before you begin, ensure the following prerequisites are met:

  • Windows System Requirements: Refer to the offical ArcGIS documention ArcGIS Business Analyst Enterprise system requirements.
  • ArcGIS Software: ArcGIS Server, GeoEnrichment Server, and Web Adaptor installers (and patches, if required).
  • PowerShell DSC: Windows PowerShell 5.x installed.
  • PowerShell DSC ArcGIS Module: Version 5.1.0 or later, installed from the PowerShell Gallery or this repository on both the orchestrating and target node(s).
  • Service Account: Windows account (domain or local) with sufficient permissions to install and run ArcGIS components.
  • Licenses: Valid ArcGIS Server and GeoEnrichment Server license files.
  • Configuration File: A JSON configuration file describing your deployment. Refer to the Configuration File Structure section.
  • Network & Firewall: Required ports open between all ArcGIS components. Refer to the offical ArcGIS documention Ports used by base ArcGIS Enterprise components and/or ArcGIS Enterprise ports PDF diagram.
  • .NET Desktop Runtime: Required for GeoEnrichment Server (installer path specified in config).

Tip: Place all installers and configuration files on accessible local or network paths. Use secure methods for handling credentials and license files.

Best Practices and Summary


By following this guide, you can automate and standardize the deployment of ArcGIS GeoEnrichment Server using the PowerShell DSC ArcGIS Module, ensuring consistency and reducing manual effort. For advanced scenarios or troubleshooting, refer to the module documentation and Esri’s official resources.

Deployment Steps

Follow these steps to deploy and configure ArcGIS GeoEnrichment Server:

1. Prepare the Environment

  • Ensure all prerequisites are met see Prerequisites.
  • Place all required installers, license files, and your JSON configuration on the the orchestrating and target node(s).

Tip The ArcGIS Module can also be used to download the ArcGIS Software. Refer to Downloading ArcGIS Installation Setups

2. Install the PowerShell DSC ArcGIS Module

You can install the module using one of the following methods:

Note: Ensure the ArcGIS module resides on each target node and orchestrating node.

3. Run the Deployment Command

Use the Invoke-ArcGISConfiguration command to start the deployment. Example:

$configFile = "C:\Path\To\GISServer-GeoEnrichmentServer.json"
$cred = Get-Credential  # Enter the service account credentials
Invoke-ArcGISConfiguration -ConfigurationParametersFile $configFile -Mode InstallLicenseConfigure -Credential $cred -DebugSwitch

Parameters:

  • -ConfigurationParametersFile: Path to your JSON configuration file.
  • -Mode: Use InstallLicenseConfigure for initial deployment.
  • -Credential: Service account credentials (used for remote execution).
  • -DebugSwitch: (Optional) - Enables Portal for ArcGIS and ArcGIS Server DEBUG log level for troubleshooting. To avoid disk space filling up, once the deployment completes and has been validated, re-run the Invoke-ArcGISConfiguration command without DebugSwitch to reset the log level to WARNING

Tip: For comprehensive details on available command-line parameters, refer to the PowerShell DSC ArcGIS Module Command-Line Parameters documentation.

4. Monitor Progress

Verbose output will be shown in the console. Detailed logs are written to the Logs/<node>/ directory (relative to where you ran the Invoke-ArcGISConfiguration command) for each node and configuration phase.

5. Post-Deployment

  • Validate the deployment. Refer to the Validating the Deployment section for additional instructions.
  • If required, complete any additional configuration steps, such as:

Configuration File Structure

Deployment is driven by a JSON configuration file. Below is a summary of the key sections and fields, based on the provided sample:

{
	"AllNodes": [
		{
			"NodeName": "[Machine Name]",
			"Role": ["Server", "WebAdaptor"],
			"WebAdaptorConfig": [
				{ "Role": "Server" }
			]
		}
	],
	"ConfigData": {
		"Version": "[ArcGIS Version]",
		"ServerRole": "GeneralPurposeServer",
		"AdditionalServerRoles": ["GeoEnrichmentServer"],
		"ServerContext": "geoenrichment",
		"Credentials": { ... },
		"Server": { ... },
		"GeoEnrichmentServer": {
			"Installer": {
				"Path": "[Installer Path]",
				"InstallDir": "[Install Dir]",
				"DotnetDesktopRuntimePath": "[Dotnet Runtime Path]",
				"EnableSemanticSearch": "true | false"
			},
			"DataStoreDataDirectory": "[optional]",
			"RegisterGeoEnrichmentAsPortalUtilityService": "[optional]",
			"ForceRepair": "[optional]"
		},
		"WebAdaptor": { ... },
		"Federation": { ... }
	}
}

Key Fields:

  • AllNodes: List of target machines and their roles.
  • ConfigData.Version: ArcGIS Enterprise version.
  • ConfigData.ServerRole & ConfigData.AdditionalServerRoles: Must include GeoEnrichmentServer for this deployment.
  • ConfigData.ServerContext: ArcGIS WebAdaptor Context name.
  • ConfigData.Credentials: Service account and admin credentials.
  • ConfigData.Server: ArcGIS Server install and license details.
  • ConfigData.GeoEnrichmentServer: Paths to GeoEnrichment installer, .NET runtime, and optional settings.
  • ConfigData.WebAdaptor: Web Adaptor installer and settings.
  • ConfigData.Federation: Portal federation details (host, port, context, admin credentials).

Note: See SampleConfigs/v5/v5.1.0/Gis Servers/GISServer-GeoEnrichmentServer.json for a complete example. Also refer to the v5.1.0 Variables Reference Guide

Validation and Troubleshooting

Validating the Deployment

After deployment, verify the following:

  • GeoEnrichment Server Service: Confirm the Windows service is running in services.msc and is set to the correct service account.
  • Verify applications and services: Ensure that key components such as the ArcGIS Business Analyst Web App, routing services, and reporting tools are accessible and functioning as expected. For detailed verification steps, see the official ArcGIS documentation on Verifying applications and services.
  • Portal Federation: If federated, check the Portal for ArcGIS to ensure the GeoEnrichment utility service is registered and available.
  • Web Adaptor: Confirm the Web Adaptor endpoint is accessible and properly routes requests.
  • Logs: Review the DSC logs located in the Logs/<NodeName>/ directory (relative to where you ran the Invoke-ArcGISConfiguration command).

Troubleshooting Tips

  • Deployment Fails:
    • Check PowerShell output and verbose logs for error messages.
    • Ensure all installer paths and credentials are correct in the JSON configuration.
    • Verify required ports are open and firewall rules allow communication between components.
  • GeoEnrichment Not Available:
    • Confirm the AdditionalServerRoles includes GeoEnrichmentServer.
    • Ensure the .NET Desktop Runtime is installed (path specified in config).
  • Federation Issues:
    • Double-check Portal host, port, and admin credentials in the configuration.
    • Review Portal/Server logs for federation errors.
  • Web Adaptor Problems:
    • Ensure the Web Adaptor installer path is correct and the IIS site is running.

For further assistance, consult the ArcGIS GeoEnrichment Server documentation, Github Issues, and/or contact Esri Technical Support.

⚠️ **GitHub.com Fallback** ⚠️