Select to view content in your preferred language

Configuration Reporter

3670
26
07-13-2024 10:21 AM
MaggieBusek
Esri Contributor
13 26 3,670

The Configuration Reporter is a Python script that provides an output with architecture and configuration information about an ArcGIS Enterprise deployment in a Windows or Linux environment. ArcGIS Enterprise versions 11.3, 11.2, 11.1, and 10.9.1 are supported. The script is helpful for understanding and communicating the design of an ArcGIS Enterprise deployment and even potentially troubleshooting environment-specific issues.

The Configuration Reporter provides details about the logical architecture of the deployment, including the configuration of the Portal for ArcGIS and ArcGIS Server components, as well as licensing and certificate information. The script output is in a Microsoft Excel format that is arranged in sheets for easy analysis and sharing.

Check out this Knowledge Base article on the Esri Technical Support site to download the tool.

If you have feedback or questions about the tool, please reply to this blog. 

26 Comments
A_Wyn_Jones
Esri Contributor

@MaggieBusek Thank you for this - it looks like a great tool to prepare for upgrades and troubleshooting issues.

 

Is there a Git repo for this?

Again, many thanks for sharing.

 

SimonGIS
Regular Contributor

Does Excel need to be installed on the machine where this is run?

Cannot convert {'region': 'ap-southeast', 'credentialType': 'IAMRole', 'endpoint': 's3-ap-southeast-2.amazonaws.com'} to Excel

SimonSchütte_ct
MVP Regular Contributor

Hi, this is great, thank you for sharing. Would it be possible to share the code on Github with an open license, so we can contribute?

CodyPatterson
MVP Regular Contributor

Hey @MaggieBusek 

Great post, this looks like it'll be extremely useful when it comes to investigating issues in the environments, which I do quite often!

I'm with the others, any Git repo for this?

Cody

RobertHadsellESRI
Occasional Explorer

Hello, 

I'm running into the following issue when attempting to run this tool against my ArcGIS Enterprise 11.2 environment. 2024-07-22_10-57-54.png

After viewing the source code in my VS Code instance, it appears the tool is trying to use a deprecated method within the datetime class:

2024-07-22_11-00-57.png

I've tried to use the python.exe in both the ArcGIS Server default location as well as ArcGIS Pro, however, it is giving me the same error message with both. The arcgis python api version is 2.2.0.1 in both scenarios.

RobertHadsellESRI_0-1721666736834.pngRobertHadsellESRI_1-1721666763095.png

Any help/insight would be greatly appreciated!

MaggieBusek
Esri Contributor

Thank you all for your questions! 

@A_Wyn_Jones@SimonSchütte_ct,  @CodyPatterson At this time, we do not have a Git repo available for the Configuration Reporter. We will consider this for the future.

@SimonGIS Excel does not need to be installed in order to run the script. Because the output file is an .xlsx you will need Excel to engage with the output. This does not have to be on the same machine where the Configuration Reporter is run. 

@RobertHadsellESRI An updated version of the tool has been published on the Knowledge Base article that should address this issue. 

DavidHoy
Esri Contributor

 I have an environment with  initial administrator account disabled and IWA authentication.
Is there a way to provide the credentials in the config.ini file for the current windows user (that is an administrator in the Portal)?
Similar question if SAML authentication is required.

SimonSchütte_ct
MVP Regular Contributor

@DavidHoy From a quick glance into the code it looks like only internal portal users are supported at this point. Other methods need to be implemented: Working with different authentication schemes | ArcGIS API for Python I guess token based authentication would be easiest to implement (add token variable in runPortalCalls.py + add in ConfigReport.py so we can define a Portal Token in the config.ini)

@MaggieBusek Could you please assign an open source license that allows modification of the code? Then we could expand functionality here in the community.

Jonathan_Marin
Occasional Contributor
 
I attempted to run the tool again with the link in the knowledge base article you linked yesterday and I am still receiving the same error message that  @RobertHadsellESRI is getting. Was the zip file link updated on the article?
 
Thank you
 
DavidHoy
Esri Contributor

Just an update.
I was able to move forward by temporarily enabling the initial administrator account and using the https://<FQDN>:7443/arcgis route to portal and the credentials for portaladmin.
This worked ok for me.

StephenM01
Occasional Contributor

It looks like some try-except blocks where Expiration_Date is set may need to be indented in updateReportServerLicenseDetails.py. I was getting "local variable 'expiration' referenced before assignment" errors from the script. I indented a few of the try-except blocks and the script ran successfully.

Here's an excerpt showing one of the try-except blocks before I indented it:

try except block.png

 

MaggieBusek
Esri Contributor

@StephenM01 Thank you for your feedback! This should now be addressed in a recent update of the tool available on the Technical Support page

MichaelRogers
Emerging Contributor

Can a proxy setting be added to the config.ini file for those running this from within a network that requires a connection proxy? Thanks

anbinh
by
Frequent Contributor

Hi there,

I ran into the below error when it was at the step of running "updateReportPortalLogicalArchitecture.py".

ValueError: Cannot convert {'accountName': '*****', 'accountEndpoint': 'blob.core.windows.net', 'accountKey': '****', 'credentialType': 'accessKey'} to Excel

 

I believe the developer would need to add a "str()" to format the "content_directory" at: Portal_Content_Value_Cell.value = content_directory. So it becomes:

Portal_Content_Value_Cell.value = str(content_directory)

 

Regards,

AB

SimonSchütte_ct
MVP Regular Contributor
SGTomlins
Frequent Contributor

Greetings..  I just ran the code.  The CMD window returned successfully, yet no XLSX was created.  Only the TXT file.... ?

Thank in advance....  🙂

-Steve

Ayyaz
by Esri Contributor
Esri Contributor

@anbinh Apologies for reaching back late. Thanks for pointing out this issue. This will be incorporated in the next release. 

 

@SGTomlins Apologies for reaching back late. Is it possible to share a txt file on a mail a.mahmood@esri.com

 

@MichaelRogers  Currently the proxy is not supported and not bein planned to add. You can reach admin endpoints without proxy? 

SGTomlins
Frequent Contributor

@Ayyaz .. I got it to run on my production server with SSL enabled.  It would not run on my development server with SSL set to false.  I do not have a valid certificate on the development server.

Thank you for the tool.  It has added to my "bag of tricks"..

-Steve

Ankitkhanna
Regular Contributor

Hi @MaggieBusek & @Ayyaz , I am getting similar issue as reported by @SimonGIS where script having issue generating Logical Architecture in excel.

Below is the error I am getting in CMD:

Traceback (most recent call last):
  File "C:\temp\ConfigReport\ConfigReport.py", line 92, in <module>
    row_number = portal_operations.updateReportPortalLogicArchitecture.PortalLogicalArchitecture(workbook, dict_reporting)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\temp\ConfigReport\portal_operations\updateReportPortalLogicArchitecture.py", line 115, in PortalLogicalArchitecture
    Portal_Content_Value_Cell.value = content_directory
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Lib\site-packages\openpyxl\cell\cell.py", line 215, in value
    self._bind_value(value)
  File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Lib\site-packages\openpyxl\cell\cell.py", line 184, in _bind_value
    raise ValueError("Cannot convert {0!r} to Excel".format(value))
ValueError: Cannot convert {'region': 'ap-southeast-2', 'credentialType': 'IAMRole', 'endpoint': 's3-ap-southeast-2.amazonaws.com'} to Excel

 

Ankitkhanna_0-1732662676576.png

 

Thanks, Ankit

anbinh
by
Frequent Contributor

Hi @Ankitkhanna , please see my comment above. I believe it is the same issue as I encountered, and I have provided solution in my comment. 

Ankitkhanna
Regular Contributor

Thanks @anbinh I missed your comment. Yes, I made edit to updateReportPortalLogicArchitecture.py and added str(), the script worked.

Thanks again 🙂

Cheers,
Ankit

Ayyaz
by Esri Contributor
Esri Contributor

Hi @Ankitkhanna  @anbinh 

 

Thanks for using the tool and making this workaround. This will be fixed in new release with couple of new functionalities. 

 

Thanks for your patience and support 

 

Ayyaz 

KentWilliams3
Occasional Explorer

I am attempting to run this utility against an Enterprise installation in AWS.  I'm getting the same error mentioned above.

File "c:\testing\ConfigReport\portal_operations\updateReportPortalLogicArchitecture.py", line 115, in PortalLogicalArchitecture
Portal_Content_Value_Cell.value = content_directory
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\myuseraccount\AppData\Local\ESRI\conda\envs\arcgispro-py3-clone\Lib\site-packages\openpyxl\cell\cell.py", line 215, in value
self._bind_value(value)
File "C:\Users\myuseraccount\AppData\Local\ESRI\conda\envs\arcgispro-py3-clone\Lib\site-packages\openpyxl\cell\cell.py", line 184, in _bind_value
raise ValueError("Cannot convert {0!r} to Excel".format(value))
ValueError: Cannot convert {'region': 'us-east-1', 'credentialType': 'IAMRole', 'endpoint': 's3-external-1.amazonaws.com'} to Excel

 

On the off chance that openpyxl was out of date, but updating it in my cloned environment made no difference.  

KentWilliams3
Occasional Explorer

I just noticed the comment above about casting the content_directory variable to string after I got that error message.  

https://community.esri.com/t5/arcgis-enterprise-blog/configuration-reporter/bc-p/1546403/highlight/t...

I've made this change to my local copy and it does seem to solve that issue, but another has arisen:

File "c:\Users\myuseraccount\ConfigReport\ConfigReport.py", line 98, in <module>
    portal_operations.updateReportPortalLicenseDetails.PortalUpdateLicenseDetails(workbook,dict_reporting, logging)
  File "c:\Users\myuseraccount\Python\ConfigReport\portal_operations\updateReportPortalLicenseDetails.py", line 182, in PortalUpdateLicenseDetails
    next_row = UpdateConfigurationSheetCell(portdal_license_sheet, next_row, initial_column, "Unable to access License Information for Portal for ArcGIS ", '', '','')
                                                                   ^^^^^^^^
UnboundLocalError: cannot access local variable 'next_row' where it is not associated with a value

I could dive in and try to find out why next_row is inaccessible, but figured it'd be a good idea to ask others.

KentWilliams3
Occasional Explorer

OK.  I found the cause of the problem.  In the updateReportPortalLicenseDetails.py file on line 182, change it to 

next_row = None

You could also just use a pass, since this line of code doesn't really do anything and the value it would have generated if there wasn't an unbound variable error is just not used anyway.  

Basically, licensing details aren't being returned in the case of the Portal I'm running against for reasons I have not determined, and the if/else written here used a variable in the else that doesn't exist yet.

So, although I don't get the licensing details in the output Excel file, at least I get everything else.

Ayyaz
by Esri Contributor
Esri Contributor

Hi @KentWilliams3

Thanks for your feedback. In the new release of tool, this issue with cloud provider connection string is fixed. It will be released in few weeks. 

 

Thanks, 

Ayyaz 

Contributors