Skip to content

ArcGIS Enterprise Chef Deployment Templates

Cameron Kroeker edited this page May 6, 2021 · 3 revisions

ArcGIS Enterprise Chef deployment templates provide ready-to-use JSON files for deploying ArcGIS Enterprise with Chef. The JSON files are specific to ArcGIS versions, platforms, and machine roles. The deployment templates provide a straightforward and deterministic way to automate initial deployments and upgrades of ArcGIS Enterprise on-premises and in the clouds.

The following are the ArcGIS 10.9 deployment templates:

Installing Chef Client and ArcGIS Chef Cookbooks

The deployment templates' JSON files can be used out-of-the-box with Chef Zero (a.k.a Chef Solo) or Chef Server because the templates define the run lists and attributes for ArcGIS Enterprise machine roles. The Chef Server approach is preferred in large deployments, whereas the Chef Zero approach is more favorable in single machine or smaller deployments. In any case, Chef Infra Client or Cinc Client must be installed on each machine. The template's README files list the recommended Chef/CINC versions (the versions templates were tested with). Follow Chef Infra Client or Cinc Client installation guides for specific instructions.

The deployment templates along with all the required Chef cookbooks are included in .zip and .tar.gz archives of ArcGIS Chef Cookbooks releases: arcgis-3.7.0-cookbooks.zip, arcgis-3.7.0-cookbooks.tar.gz.

For Chef Zero based deployments, extract the archive into a local directory on each machine, update the corresponding template JSON files, and run Chef/Cinc client in 'zero' mode.

cinc-client -z -j machine-role.json --config-option cookbook_path=C:\cinc\cookbooks

Specifying cookbook_path in the command line is not required if the cookbooks are in the default Chef workspace or if cookbook_path is specified in the client.rb file.

The JSON files used with the Chef run may contain sensitive information such as passwords. Chef client also caches the information provided in the JSON files in "nodes" folder the local Chef workspace. After the Chef run is completed, it is a good practice to delete/shred the JSON file and "nodes" folder from the machine.

Before deleting the JSON files, copy them along with ArcGIS authorization files, SSL certificates and other files used for the deployment to a safe and secure storage. These files can be used to duplicate the deployments, recover them from catastrophic failures, and for upgrades to new ArcGIS versions.

Creating ArcGIS Software Repository

The deployment templates require ArcGIS setup archives to install ArcGIS applications. The setup archives must be located in a local or shared ArcGIS Software Repository directory specified by the arcgis.repository.archives attribute. Before running the setups, the setup archives are extracted into a local directory specified using the arcgis.repository.setups attribute.

The setup archives used by a deployment template can be downloaded to a local ArcGIS Software Repository from an S3 bucket using *-s3files.json files. The access key id and secret access key of the Amazon Web Services (AWS) account must be specified using the arcgis.repository.server.aws_access_key and arcgis.repository.server.aws_secret_access_key attributes respectively. The S3 bucket name must be specified with the arcgis.repository.server.s3bucket attribute. The setup archives are downloaded to the local directory specified with the arcgis.repository.local_archives attribute. For example, for an arcgis-server/10.9/windows deployment template, executing chef-client -z -j s3-files.json will download the ArcGIS_Server_Windows_109_177775.exe setup archive to C:\Software\Archives folder.

S3 buckets arcgisstore-<region id> contain ArcGIS 10.9 setup archives accessible to any authenticated AWS users.

Using Machine Role JSONs

The deployment templates include Chef JSON files for ArcGIS Enterprise machine roles. Run Chef multiple times with different JSON files if a machine is used in multiple roles.

Some Chef attributes, such as passwords, authorization files paths, and URLs must always be updated in the JSON files. These attributes are described in the templates' README files.

The JSON files can be customized by adding or changing attributes used by the Chef cookbooks. See the cookbooks' README files for the list of attributes.

Networking Options

Multi-machine ArcGIS Enterprise deployments can use hostnames or IP addresses for cross-machine communications. By default, the deployment templates use hostnames. Static IP addresses should be used only when hostnames cannot be used. Using IP addresses requires setting additional attributes described in the README files of the deployment templates.

The arcgis.hosts setting can be used to map domain names to static IP addresses in the hosts file. For example, the hosts section below maps domain.com to the IP address of the machine and FILESERVER to 10.0.0.1.

{
  "arcgis": {
    "hosts": {
      "domain.com": "",
      "FILESERVER": "10.0.0.1"
    }
  }
}

On Microsoft Windows machines, the deployment templates open the required ports in the Windows Firewall. The firewall configuration can be disabled by setting arcgis.configure_windows_firewall attribute to false. On Linux machines, the firewalls are not configured except for port forwarding.

Upgrading the Deployments

ArcGIS Enterprise sites initially deployed using older versions of the deployment templates can be upgraded using the templates.

It's not recommended to use the templates for upgrades if the sites were not initially deployed using the templates.

To upgrade the deployment follow the upgrade instructions described in the README file of the new template version. Typically the upgrade process requires changing just involves transferring some attributes values to the new template JSONs.

Clone this wiki locally