Automation
Overview
To ease the maintenance of many environments, the EGIS team has evaluated a number of automation tools for system administration. The technologies considered are each given their own sub-page on this wiki. The ideal final approach will be accessible to a System Administrator who is comfortable with a command line, but would not require a programmer to run.
Creating a New Environment
The tool or tools selected must facilitate the following tasks:
Create resource group.
Create and configure virtual network.
Create and configure virtual machines.
Install ArcGIS Enterprise software.
Configure ArcGIS Enterprise software.
Create site.
Federate ArcGIS Server.
Create Data Store.
Configure web adaptor.
Configure site security and network settings.
Create users, groups, and roles.
Add site content.
Configure site look and feel.
Findings
While there are many tools in this space, and many suggested by various vendors, no tool sufficiently handled the entirety of the task list defined. The solution will then need to be a hybrid of the most suitable tool. Ideally, the solution to each individual task can then be combined into a single script for easy deployment.
The capabilities of each evaluated technology can has been summarized on the Feature comparison page.
Selected Approach
The EGIS team met with Adiy Qasrawi from Microsoft Azure Automation Solutions to discuss various automation options and approaches. This meeting helped narrow the field and pointed towards the most stable solutions.
PowerShell offers the most complete and stable coverage for managing Azure infrastructure, offers Defined State Configuration, and can launch additional tools once a resource is created. These additional tools include a VM extension for Chef, and a CustomScript extension which could be used to run Python.
The EGIS team will use PowerShell to create its Azure infrastructure, defined as JSON templates. These templates should cover creating the resource group, configuring the virtual network, and creating the virtual machines.
The Chef extension will then be used to assign roles and environments to each VM. Given the immaturity of both ESRI's Chef and ESRI's arcgis-powershell-dsc, both tools may be developed in parallel.
Finally, the CustomScript extension will be used to run Python scripts on each machine to fine-tune the configuration.