I’ve got a region controller running with the snap on Rocky 9. Everything was working with our internally-generated certs for TLS until I tried to add a separate rack controller.
The init command returns without any apparent error:
$ sudo maas init rack --maas-url https://$MAAS_IP:5240/MAAS --secret $MAAS_SECRET
…but the rack controller doesn’t appear on the region controller, and /var/log/messages on the rack controller shows a “certificate verify failed” traceback:
Traceback (most recent call last):
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 661, in callback
self._startRunCallbacks(result)
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 763, in _startRunCallbacks
self._runCallbacks()
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 857, in _runCallbacks
current.result = callback( # type: ignore[misc]
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1750, in gotResult
current_context.run(_inlineCallbacks, r, gen, status)
--- <exception caught here> ---
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1225, in _doUpdate
eventloops, maas_url = yield self._get_rpc_info(urls)
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1484, in _get_rpc_info
raise config_exc
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1455, in _get_rpc_info
eventloops, maas_url = yield self._parallel_fetch_rpc_info(urls)
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 857, in _runCallbacks
current.result = callback( # type: ignore[misc]
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1429, in handle_responses
errors[0].raiseException()
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/python/failure.py", line 475, in raiseException
raise self.value.with_traceback(self.tb)
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1390, in _serial_fetch_rpc_info
raise last_exc
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1382, in _serial_fetch_rpc_info
response = yield self._fetch_rpc_info(url, orig_url)
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1656, in _inlineCallbacks
result = current_context.run(
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/python/failure.py", line 489, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1484, in _get_rpc_info
raise config_exc
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1455, in _get_rpc_info
eventloops, maas_url = yield self._parallel_fetch_rpc_info(urls)
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 857, in _runCallbacks
current.result = callback( # type: ignore[misc]
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1429, in handle_responses
errors[0].raiseException()
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/python/failure.py", line 475, in raiseException
raise self.value.with_traceback(self.tb)
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1656, in _inlineCallbacks
result = current_context.run(
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/python/failure.py", line 489, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1390, in _serial_fetch_rpc_info
raise last_exc
File "/snap/maas/36363/lib/python3.10/site-packages/provisioningserver/rpc/clusterservice.py", line 1382, in _serial_fetch_rpc_info
response = yield self._fetch_rpc_info(url, orig_url)
twisted.web._newclient.ResponseNeverReceived: [<twisted.python.failure.Failure OpenSSL.SSL.Error: [('SSL routines', '', 'certificate verify failed')]>]
provisioningserver.rpc.clusterservice: [critical] Failed to contact region. (While requesting RPC info at https://jft-maas.jamfilled.com:5443/MAAS).
Traceback (most recent call last):
File "/snap/maas/36363/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 661, in callback
self._startRunCallbacks(result)
I’m not finding any command options (e.g. --cacerts) which seem like they’re meant for dealing with this. How do I get this working?
Thanks.