ArcGIS in Docker: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
Brian Wilson (talk | contribs)
Line 28: Line 28:


I have an idea that I might be able to just use the official ESRI backup script(s) to create a backup of the data,
I have an idea that I might be able to just use the official ESRI backup script(s) to create a backup of the data,
confirm that I can restore, and then figure out what it's backing up.
confirm that I can restore, and then figure out what it's backing up. This begs the question:
 
=== How do I back up ArcGIS Enterprise? ===
 
The official resource:
http://server.arcgis.com/en/server/latest/administer/linux/back-up-and-restore-your-arcgis-server-site-configuration.htm
This page covers what they ''don't'' back up, too, which includes the Web Adaptor configuration, it says you have to
reconfigure it every time, sigh. Later for that.
 
Backup utility for ArcGIS Server is documented here: http://server.arcgis.com/en/server/latest/administer/linux/backup-utility.htm
 
server/tools/admin/backup -u siteadmin -p '''password''' -s http://arcgis.wildsong.biz:6080/ -f backup_folder
 
It appears this could run over a network connection so I can in theory create a new Docker container that does backups.
 
The docs say it will create a ".agssite" file, which hopefully breaks with the long tradition of useless proprietary files
and is in some format I can open and examine.
 
It says you can put a webadaptor URL in there for the site URL; I have not tried that yet.
 
When I run the command it says
 
$ Python can only be started by the install owner (arcgis).  This script must be run by the installation owner (arcgis)
 
Hmmm. Great. "backup" is a shell script that calls "python backup.py". "python" is also a shell script. The "python" script
checks to see if the installer = the logged in user.
 
$ whoami
arcgis
 
Curious. Why do they feel a need to make things so complicated?
 
Now this part is interesting. It runs ''wine "C:/Python27/ArcGISx6410.5/python.exe"''.
It must be invoking wine so that it can load special ESRI ArcPy code.
 
=== Examining each docker ===


Another idea is to see what is getting written when I configure each component... that is the obvious way to do it.
Another idea is to see what is getting written when I configure each component... that is the obvious way to do it.

Revision as of 03:36, 6 July 2017

Objective

The moving parts are many. Get them running in Docker containers so I can easily spin up ESRI ArcGIS Enterprise and use it.

Status

I am working with version 10.5.1

I have these components working, but not persisting data, so every time I stop one I have to configure again.

  • ArcGIS Server
  • Portal for ArcGIS
  • Web Adaptor
  • Data Store

The Data Store needs an RDBMS backend, I will be using the SQL Server docker provided by Microsoft. I got Data Store set up but no RDBMS. I need to do this soon, so that it is useful!

Additionally there are more components that are optional, one I plan on setting up soon is

  • GeoEvent Server

I create a docker for each component. They all use Ubuntu Server, so I have a docker set up for that. I run Web Adaptor on Tomcat 8, so I have a tomcat8 docker.

Where do they hide the data?

I have an idea that I might be able to just use the official ESRI backup script(s) to create a backup of the data, confirm that I can restore, and then figure out what it's backing up. This begs the question:

How do I back up ArcGIS Enterprise?

The official resource: http://server.arcgis.com/en/server/latest/administer/linux/back-up-and-restore-your-arcgis-server-site-configuration.htm This page covers what they don't back up, too, which includes the Web Adaptor configuration, it says you have to reconfigure it every time, sigh. Later for that.

Backup utility for ArcGIS Server is documented here: http://server.arcgis.com/en/server/latest/administer/linux/backup-utility.htm

server/tools/admin/backup -u siteadmin -p password -s http://arcgis.wildsong.biz:6080/ -f backup_folder

It appears this could run over a network connection so I can in theory create a new Docker container that does backups.

The docs say it will create a ".agssite" file, which hopefully breaks with the long tradition of useless proprietary files and is in some format I can open and examine.

It says you can put a webadaptor URL in there for the site URL; I have not tried that yet.

When I run the command it says

$ Python can only be started by the install owner (arcgis).  This script must be run by the installation owner (arcgis)

Hmmm. Great. "backup" is a shell script that calls "python backup.py". "python" is also a shell script. The "python" script checks to see if the installer = the logged in user.

$ whoami
arcgis

Curious. Why do they feel a need to make things so complicated?

Now this part is interesting. It runs wine "C:/Python27/ArcGISx6410.5/python.exe". It must be invoking wine so that it can load special ESRI ArcPy code.

Examining each docker

Another idea is to see what is getting written when I configure each component... that is the obvious way to do it.

Composing a swarm

Once things are limping along correctly and restartable I want to simplify config by creating "compose" files to tie everything together.