Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

arcgis-egdb (7) Versions 2.0.0

Creates enterprise geodatabases in SQL Server or PostgreSQL DBMS and registers them with ArcGIS Server.

Policyfile
Berkshelf
Knife
cookbook 'arcgis-egdb', '= 2.0.0', :supermarket
cookbook 'arcgis-egdb', '= 2.0.0'
knife supermarket install arcgis-egdb
knife supermarket download arcgis-egdb
README
Dependencies
Changelog
Quality 17%

layout: default
title: "arcgis-egdb cookbook"
category: cookbooks
item: arcgis-egdb
version: 2.0.0

latest: true

arcgis-egdb cookbook

The arcgis-egdb cookbook creates enterprise geodatabases in SQL Server or PostgreSQL databases and registers them with ArcGIS Server as the site's managed database.

Platforms

  • Windows 10
  • Windows Server 2016
  • Windows Server 2019
  • Windows Server 2022
  • Ubuntu Server 20.04 LTS
  • Ubuntu Server 22.04 LTS
  • Red Hat Enterprise Linux Server 8
  • Red Hat Enterprise Linux Server 9
  • SUSE Linux Enterprise Server 15
  • Oracle Linux 8
  • Oracle Linux 9
  • Rocky Linux 8
  • Rocky Linux 9
  • AlmaLinux 9

Database Servers

The cookbook was tested with:

  • Amazon RDS for SQL Server
  • Amazon RDS for PostgreSQL
  • Amazon Aurora PostgreSQL-compatible

Dependencies

The following cookbooks are required:

  • arcgis-enterprise

The cookbook uses ArcPy to create and enable geodatabases. ArcPy is installed by the ArcGIS Server setup.

ArcPy does not support creating databases in Amazon RDS database servers. The cookbook uses the sqlcmd and the psql utility for SQL Server and PostgreSQL database servers respectively to create the databases. The 'sqlcmd' and 'psql' recipes could be used to install these utilities. ArcGIS Data Store and Portal for ArcGIS include an embedded PostgreSQL client with psql utility that can be used by the arcgis-egdb cookbook.

Attributes

  • node['arcgis']['egdb']['engine'] = DB engine <nil|postgres|sqlserver-se>. Default DB engine is nil.
  • node['arcgis']['egdb']['endpoint'] = DB instance endpoint domain name. Default endpoint is nil.
  • node['arcgis']['egdb']['keycodes'] = ArcGIS Server license file path. Default path is node['arcgis']['server']['keycodes'].
  • node['arcgis']['egdb']['master_username'] = RDS DB instance master username. Default username is EsriRDSAdmin.
  • node['arcgis']['egdb']['master_password'] = RDS DB instance master user password. Default password is nil.
  • node['arcgis']['egdb']['db_username'] = Geodatabase username. Default username is sde.
  • node['arcgis']['egdb']['db_password'] = Geodatabase user password. Default password is node['arcgis']['egdb']['master_password'].
  • node['arcgis']['egdb']['postgresbin'] = Path to PostgreSQL client bin directory. Default path is C:\Program Files\ArcGIS\DataStore\framework\runtime\pgsql\bin on Windows and /arcgis/datastore/framework/runtime/pgsql/bin on Linux.
  • node['arcgis']['egdb']['sqlcmdbin'] = Path to Microsoft SQL Server Client SDK ODBC Tools 17 Binn directory. Default path is C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn on Windows.
  • node['arcgis']['egdb']['connection_files_dir'] = Directory path for geodatabase connection files (.sde) created by the recipes. Default directory is node['arcgis']['misc']['scripts_dir']/connection_files.
  • node['arcgis']['egdb']['data_items'] = Array with properties of geodatabases. Default value is as follows:
  [{
    "database" : "egdb",
    "data_item_path" : "/enterpriseDatabases/registeredDatabase",
    "connection_file": "C:\\chef\\misc_scripts\\connection_files\\RDS_egdb.sde",
    "is_managed" : true,
    "connection_type" : "shared"
  }]

Recipes

default

Creates an enterprise geodatabase and registers it with ArcGIS Server.

Attributes used by the recipe:

{
  "arcgis": {
    "version": "11.3",
    "server": {
      "install_dir": "C:\\Program Files\\ArcGIS\\Server",
      "private_url": "https://domain.com:6443/arcgis",
      "admin_username": "admin",
      "admin_password": "changeit"
    },
    "misc": {
      "scripts_dir": "C:\\chef\\misc_scripts"
    },
    "egdb": {
      "engine": "postgres",
      "endpoint": "xxx.cluster-yyy.us-east-2.rds.amazonaws.com",
      "keycodes": "C:\\Program Files\\ESRI\\License11.3\\sysgen\\keycodes",
      "postgresbin" : "C:\\Program Files\\ArcGIS\\DataStore\\framework\\runtime\\pgsql\\bin",
      "master_username": "EsriRDSAdmin",
      "master_password": "changeit",
      "db_password": "changeit",
      "connection_files_dir": "C:\\chef\\misc_scripts\\connection_files",
      "data_items": [{
        "database": "egdb",
        "data_item_path": "/enterpriseDatabases/registeredDatabase",
        "connection_file": "C:\\chef\\msic_scripts\\connection_files\\RDS_egdb.sde",
        "is_managed": true,
        "connection_type": "shared"
      }]
    }
  },
  "run_list": [
    "recipe[arcgis-egdb]"
  ]
}

egdb_postgres

Creates an enterprise geodatabase in PostgreSQL.

Attributes used by the recipe:

{
  "arcgis": {
    "version": "11.3",
    "run_as_user": "arcgis",
    "server": {
      "install_dir": "C:\\Program Files\\ArcGIS\\Server"
    },
    "misc": {
      "scripts_dir": "C:\\chef\\misc_scripts"
    },
    "egdb": {
      "engine": "postgres",
      "endpoint": "xxx.cluster-yyy.us-east-2.rds.amazonaws.com",
      "keycodes": "C:\\Program Files\\ESRI\\License11.3\\sysgen\\keycodes",
      "postgresbin" : "C:\\Program Files\\ArcGIS\\DataStore\\framework\\runtime\\pgsql\\bin",
      "master_username": "EsriRDSAdmin",
      "master_password": "changeit",
      "db_password": "changeit",
      "connection_files_dir": "C:\\chef\\misc_scripts\\connection_files",
      "postgresbin": "C:\\Program Files\\ArcGIS\\DataStore\\framework\\runtime\\pgsql\\bin",
      "data_items": [{
        "database": "egdb",
        "data_item_path": "/enterpriseDatabases/registeredDatabase",
        "connection_file": "C:\\chef\\msic_scripts\\connection_files\\RDS_egdb.sde",
        "is_managed": true,
        "connection_type": "shared"
      }]
    }
  },
  "run_list": [
    "recipe[arcgis-egdb::egdb_postgres]"
  ]
}

egdb_sqlserver

Creates an enterprise geodatabase in SQL Server.

Attributes used by the recipe:

{
  "arcgis": {
    "version": "11.3",
    "server": {
      "install_dir": "C:\\Program Files\\ArcGIS\\Server"
    },
    "misc": {
      "scripts_dir": "C:\\chef\\misc_scripts"
    },
    "egdb": {
      "endpoint": "xxx.cluster-yyy.us-east-2.rds.amazonaws.com",
      "keycodes": "C:\\Program Files\\ESRI\\License11.3\\sysgen\\keycodes",
      "master_username": "EsriRDSAdmin",
      "master_password": "changeit",
      "db_password": "changeit",
      "data_items": [{
        "database": "egdb",
        "data_item_path": "/enterpriseDatabases/registeredDatabase",
        "connection_file": "C:\\chef\\msic_scripts\\connection_files\\RDS_egdb.sde",
        "is_managed": true,
        "connection_type": "shared"
      }]
    }
  },
  "run_list": [
    "recipe[arcgis-egdb::egdb_sqlserver]"
  ]
}

register_egdb

Registers the database connection file with the specified ArcGIS Server site as the site's managed database.

Attributes used by the recipe:

{
  "arcgis": {
    "server": {
      "private_url": "https://domain.com:6443/arcgis",
      "admin_username": "admin",
      "admin_password": "changeit"
    },
    "egdb": {
      "data_items": [{
        "database": "egdb",
        "data_item_path": "/enterpriseDatabases/registeredDatabase",
        "connection_file": "C:\\chef\\msic_scripts\\connection_files\\RDS_egdb.sde",
        "is_managed": true,
        "connection_type": "shared"
      }]
    }
  },
  "run_list": [
    "recipe[arcgis-egdb::register_egdb]"
  ]
}

sql_alias

Creates EGDBHOST alias for SQL Server endpoint domain.

Attributes used by the recipe:

{
  "arcgis": {
    "egdb": {
      "engine": "sqlserver-se",
      "endpoint": "xxx.us-east-2.rds.amazonaws.com"
    }
  },
  "run_list": [
    "recipe[arcgis-egdb::sql_alias]"
  ]
}

sqlcmd

Installs the SQL Server ODBC driver and sqlcmd utility used by SQL Server enterprise geodatabase configuration scripts.

Attributes used by the recipe:

{
  "run_list": [
    "recipe[arcgis-egdb::sqlcmd]"
  ]
}

Dependent cookbooks

arcgis-enterprise ~> 5.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

arcgis-egdb cookbook CHANGELOG

This file is used to list changes made in each version of the arcgis-egdb cookbook.

2.0.0

  • TODO

1.1.1

  • Don't log database passwords.

1.1.0

  • Ported scripts to python 3.

1.0.2

  • Use SQL Server RDS endpoint instead of EGDBHOST alias.

1.0.1

  • Updated and locked versions of dependent cookbooks.

1.0.0

  • Initial release of the cookbook.

Collaborator Number Metric
            

2.0.0 failed this metric

Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.

Contributing File Metric
            

2.0.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file

Cookstyle Metric
            

2.0.0 failed this metric

Chef/Correctness/MetadataMissingVersion: metadata.rb should define a version for the cookbook. (https://docs.chef.io/workstation/cookstyle/chef_correctness_metadatamissingversion): arcgis-egdb/test/fixtures/cookbooks/download-setups-s3/metadata.rb: 1
Chef/Correctness/MetadataMissingVersion: metadata.rb should define a version for the cookbook. (https://docs.chef.io/workstation/cookstyle/chef_correctness_metadatamissingversion): arcgis-egdb/test/fixtures/cookbooks/postgresql-test/metadata.rb: 1
Chef/Deprecations/DeprecatedChefSpecPlatform: Use currently supported platforms in ChefSpec listed at https://github.com/chefspec/fauxhai/blob/main/PLATFORMS.md. Fauxhai / ChefSpec will perform fuzzy matching on platform version so it's always best to be less specific ie. 10 instead of 10.3 (https://docs.chef.io/workstation/cookstyle/chef_deprecations_deprecatedchefspecplatform): arcgis-egdb/spec/unit/recipes/default_spec.rb: 27
Chef/Modernize/RespondToInMetadata: It is no longer necessary to use respond_to? or defined? in metadata.rb in Chef Infra Client 12.15 and later (https://docs.chef.io/workstation/cookstyle/chef_modernize_respondtoinmetadata): arcgis-egdb/metadata.rb: 8
Chef/Modernize/RespondToInMetadata: It is no longer necessary to use respond_to? or defined? in metadata.rb in Chef Infra Client 12.15 and later (https://docs.chef.io/workstation/cookstyle/chef_modernize_respondtoinmetadata): arcgis-egdb/metadata.rb: 24
Chef/Modernize/RespondToInMetadata: It is no longer necessary to use respond_to? or defined? in metadata.rb in Chef Infra Client 12.15 and later (https://docs.chef.io/workstation/cookstyle/chef_modernize_respondtoinmetadata): arcgis-egdb/metadata.rb: 25
Chef/Modernize/SevenZipArchiveResource: Use the archive_file resource built into Chef Infra Client 15+ instead of the seven_zip_archive (https://docs.chef.io/workstation/cookstyle/chef_modernize_sevenziparchiveresource): arcgis-egdb/test/fixtures/cookbooks/download-setups-s3/recipes/auth_files.rb: 23
Chef/Modernize/SevenZipArchiveResource: Use the archive_file resource built into Chef Infra Client 15+ instead of the seven_zip_archive (https://docs.chef.io/workstation/cookstyle/chef_modernize_sevenziparchiveresource): arcgis-egdb/test/fixtures/cookbooks/download-setups-s3/recipes/server.rb: 15
Chef/RedundantCode/LongDescriptionMetadata: The long_description metadata.rb method is not used and is unnecessary in cookbooks. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_longdescriptionmetadata): arcgis-egdb/metadata.rb: 6
Chef/RedundantCode/RecipeMetadata: The recipe metadata.rb method is not used and is unnecessary in cookbooks. Recipes should be documented in the cookbook's README.md file instead. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_recipemetadata): arcgis-egdb/metadata.rb: 17
Chef/RedundantCode/RecipeMetadata: The recipe metadata.rb method is not used and is unnecessary in cookbooks. Recipes should be documented in the cookbook's README.md file instead. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_recipemetadata): arcgis-egdb/metadata.rb: 18
Chef/RedundantCode/RecipeMetadata: The recipe metadata.rb method is not used and is unnecessary in cookbooks. Recipes should be documented in the cookbook's README.md file instead. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_recipemetadata): arcgis-egdb/metadata.rb: 19
Chef/RedundantCode/RecipeMetadata: The recipe metadata.rb method is not used and is unnecessary in cookbooks. Recipes should be documented in the cookbook's README.md file instead. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_recipemetadata): arcgis-egdb/metadata.rb: 20
Chef/RedundantCode/RecipeMetadata: The recipe metadata.rb method is not used and is unnecessary in cookbooks. Recipes should be documented in the cookbook's README.md file instead. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_recipemetadata): arcgis-egdb/metadata.rb: 21
Chef/RedundantCode/RecipeMetadata: The recipe metadata.rb method is not used and is unnecessary in cookbooks. Recipes should be documented in the cookbook's README.md file instead. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_recipemetadata): arcgis-egdb/metadata.rb: 22
Chef/RedundantCode/UseCreateIfMissing: Use the :create_if_missing action instead of not_if with a ::File.exist(FOO) check. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_usecreateifmissing): arcgis-egdb/recipes/sqlcmd.rb: 31
Chef/RedundantCode/UseCreateIfMissing: Use the :create_if_missing action instead of not_if with a ::File.exist(FOO) check. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_usecreateifmissing): arcgis-egdb/recipes/sqlcmd.rb: 50
Chef/RedundantCode/UseCreateIfMissing: Use the :create_if_missing action instead of not_if with a ::File.exist(FOO) check. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_usecreateifmissing): arcgis-egdb/recipes/sqlcmd.rb: 68
Chef/RedundantCode/UseCreateIfMissing: Use the :create_if_missing action instead of not_if with a ::File.exist(FOO) check. (https://docs.chef.io/workstation/cookstyle/chef_redundantcode_usecreateifmissing): arcgis-egdb/recipes/sqlcmd.rb: 86
Chef/Sharing/InvalidLicenseString: Cookbook metadata.rb does not use a SPDX compliant license string or "all rights reserved". See https://spdx.org/licenses/ for a complete list of license identifiers. (https://docs.chef.io/workstation/cookstyle/chef_sharing_invalidlicensestring): arcgis-egdb/metadata.rb: 4

Run with Cookstyle Version 7.32.1 with cops Chef/Deprecations,Chef/Correctness,Chef/Sharing,Chef/RedundantCode,Chef/Modernize,Chef/Security,InSpec/Deprecations

No Binaries Metric
            

2.0.0 passed this metric

Testing File Metric
            

2.0.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file

Version Tag Metric
            

2.0.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number