Comment 0 for bug 1858304

Revision history for this message
Nick Niehoff (nniehoff) wrote : ceph-mgr-dashboard package missing dependencies

After deploying Ceph Nautilus on Eoan I installed the ceph-mgr-dashboard package and tried to enable the dashboard with:

sudo ceph mgr module enable dashboard

The following error is returned:
Error ENOENT: module 'dashboard' reports that it cannot run on the active manager daemon: No module named 'distutils.util' (pass --force to force enablement)

Investigating the ceph-mgr logs I found:

2020-01-05 00:23:13.698 7f74b423cd00 -1 mgr[py] Traceback (most recent call last):
  File "/usr/share/ceph/mgr/dashboard/__init__.py", line 38, in <module>
    from .module import Module, StandbyModule
  File "/usr/share/ceph/mgr/dashboard/module.py", line 26, in <module>
    from .services.sso import load_sso_db
  File "/usr/share/ceph/mgr/dashboard/services/sso.py", line 21, in <module>
    from ..tools import prepare_url_prefix
  File "/usr/share/ceph/mgr/dashboard/tools.py", line 11, in <module>
    from distutils.util import strtobool
ModuleNotFoundError: No module named 'distutils.util'

I then installed python3-distutils which let me get further but the dashboard still wasn't starting compaining about no cert configured so I ran:

ceph config set mgr mgr/dashboard/ssl false

Now ceph status reports the error:
Module 'dashboard' has failed: No module named 'routes'

Investigating the logs I found:

2020-01-05 00:30:19.990 7f663bd26700 -1 log_channel(cluster) log [ERR] : Unhandled exception from module 'dashboard' while running on mgr.ceph-mon2: No module named 'routes'
2020-01-05 00:30:19.990 7f663bd26700 -1 dashboard.serve:
2020-01-05 00:30:19.990 7f663bd26700 -1 Traceback (most recent call last):
  File "/usr/share/ceph/mgr/dashboard/module.py", line 362, in serve
    mapper, parent_urls = generate_routes(self.url_prefix)
  File "/usr/share/ceph/mgr/dashboard/controllers/__init__.py", line 336, in generate_routes
    mapper = cherrypy.dispatch.RoutesDispatcher()
  File "/lib/python3/dist-packages/cherrypy/_cpdispatch.py", line 515, in __init__
    import routes
ModuleNotFoundError: No module named 'routes'

This was addressed by installing the python3-routes package.

Based on this I believe both python3-distutils and python3-routes should be added to the dependencies of the ceph-mgr-dashboard package.