Deploy ArcGIS GeoEnrichment Server - Esri/arcgis-powershell-dsc GitHub Wiki
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.
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.
- Use Secure Credential Handling: Prefer environment variables or encrypted files for passwords.
- Version Control Configurations: Store your JSON configuration files in version control for traceability.
- Test in Staging: Validate deployments in a non-production environment before rolling out to production.
- Monitor Logs: Regularly review deployment and ArcGIS logs for early detection of issues.
- Stay Updated: Keep ArcGIS software and the DSC module up to date with the latest patches and releases.
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.
Follow these steps to deploy and configure ArcGIS GeoEnrichment Server:
- 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
You can install the module using one of the following methods:
-
From GitHub Artifacts:
Follow the instructions in the Getting Started guide (Option 1) to download and import the module directly from the GitHub repository. -
From PowerShell Gallery:
Refer to Getting Started guide (Option 2) for steps to install the module from the PowerShell Gallery.
Note: Ensure the ArcGIS module resides on each target node and orchestrating node.
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 -DebugSwitchParameters:
-
-ConfigurationParametersFile: Path to your JSON configuration file. -
-Mode: UseInstallLicenseConfigurefor initial deployment. -
-Credential: Service account credentials (used for remote execution). -
-DebugSwitch: (Optional) - Enables Portal for ArcGIS and ArcGIS ServerDEBUGlog level for troubleshooting. To avoid disk space filling up, once the deployment completes and has been validated, re-run theInvoke-ArcGISConfigurationcommand withoutDebugSwitchto reset the log level toWARNING
Tip: For comprehensive details on available command-line parameters, refer to the PowerShell DSC ArcGIS Module Command-Line Parameters documentation.
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.
- Validate the deployment. Refer to the Validating the Deployment section for additional instructions.
- If required, complete any additional configuration steps, such as:
- Install and manage data packs. Refer to the official ArcGIS documentation on Installing data for detailed instructions.
- Assign Business Analyst Web App licenses. Refer to the official ArcGIS documentation on Configuing Business Analyst licenses
- Configure routing services: Refer to the offical ArcGIS documention on Configuring routing services
- Publish Geocoding services: Refer to the offical ArcGIS documentation on Share a locator
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 includeGeoEnrichmentServerfor 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.jsonfor a complete example. Also refer to the v5.1.0 Variables Reference Guide
After deployment, verify the following:
-
GeoEnrichment Server Service: Confirm the Windows service is running in
services.mscand 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 theInvoke-ArcGISConfigurationcommand).
-
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
AdditionalServerRolesincludesGeoEnrichmentServer. - Ensure the .NET Desktop Runtime is installed (path specified in config).
- Confirm the
-
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.