Failed to install production 'tutor local' in WSL2 ubuntu 20.04 with azure DNS(windows VM) for LMS and Studio url

Please help me out, I followed bellow steps/things to install ‘tutor local’

  1. Created Windows (Windows Server 2022 Datacenter).
  2. Installed WSL2 with Ubunt 20.04.
  3. Installed docker desktop software and
    a. Enabled ‘Use the WSL 2 based engine’ under General.
    b. Enabled ‘integration with my default WSL distro’ for Ubuntu 20.04 and restarted.
  4. Run the following command in Ubunt terminal
    a. sudo apt update -y
    b. sudo apt install python3 python3-pip libyaml-dev -y
    c. pip install “tutor[full]”
    d. pip install PyYAML==5.4.1(if Pyyml Error get in “tutor[full]” installtion).
  5. Rebooted the azure windows VM.
  6. Run ‘tutor local quickstart’(in WSL Ubunt terminal)

In my case azure windows VM DSN is axxxx.centralus.cloudapp.azure.com(without www. since azure do not accept.)
I selected ‘Y’ for ‘Activate SSL/TLS certificates for HTTPS access?’.

Installed and got following warring/errors

System check identified some issues:

WARNINGS:
?: (2_0.W001) Your URL pattern 'edx_name_affirmation/v1/verified_name/(?P<verified_name_id>\d+)$' [name='verified_name_by_id'] has a route that contains '(?P<', begins with a '^', or ends with a '$'. This was likely an oversight when migrating to django.urls.path().
consent.DataSharingConsent.granted: (fields.W903) NullBooleanField is deprecated. Support for it (except in historical migrations) will be removed in Django 4.0.
        HINT: Use BooleanField(null=True) instead.
consent.HistoricalDataSharingConsent.granted: (fields.W903) NullBooleanField is deprecated. Support for it (except in historical migrations) will be removed in Django 4.0.
        HINT: Use BooleanField(null=True) instead.
Creating flag: course_home.course_home_mfe_progress_tab
Setting name: course_home.course_home_mfe_progress_tab
Setting everyone: True
Setting percent: None
Setting superusers: False
Setting staff: False
Setting authenticated: False
Setting group(s): []
Setting user(s): set()
Setting rollout: False
All services initialised.
The Open edX platform is now running in detached mode
Your Open edX platform is ready and can be accessed at the following urls:

   https://axxxx.centralus.cloudapp.azure.com
    https://studio.axxxx.centralus.cloudapp.azure.com

In the LMS log it was.

2022-10-19 14:03:20,062 WARNING 1 [celery.worker.consumer.consumer] [user None] [ip None] consumer.py:354 - consumer: Connection to broker lost. Trying to re-establish the connection...
Traceback (most recent call last):
  File "/openedx/venv/lib/python3.8/site-packages/celery/worker/consumer/consumer.py", line 332, in start
    blueprint.start(self)
  File "/openedx/venv/lib/python3.8/site-packages/celery/bootsteps.py", line 116, in start
    step.start(parent)
  File "/openedx/venv/lib/python3.8/site-packages/celery/worker/consumer/consumer.py", line 628, in start
    c.loop(*c.loop_args())
  File "/openedx/venv/lib/python3.8/site-packages/celery/worker/loops.py", line 97, in asynloop
    next(loop)
  File "/openedx/venv/lib/python3.8/site-packages/kombu/asynchronous/hub.py", line 362, in create_loop
    cb(*cbargs)
  File "/openedx/venv/lib/python3.8/site-packages/kombu/transport/redis.py", line 1326, in on_readable
    self.cycle.on_readable(fileno)
  File "/openedx/venv/lib/python3.8/site-packages/kombu/transport/redis.py", line 562, in on_readable
    chan.handlers[type]()
  File "/openedx/venv/lib/python3.8/site-packages/kombu/transport/redis.py", line 906, in _receive
    ret.append(self._receive_one(c))
  File "/openedx/venv/lib/python3.8/site-packages/kombu/transport/redis.py", line 916, in _receive_one
    response = c.parse_response()
  File "/openedx/venv/lib/python3.8/site-packages/redis/client.py", line 1480, in parse_response
    response = self._execute(conn, conn.read_response)
  File "/openedx/venv/lib/python3.8/site-packages/redis/client.py", line 1462, in _execute
    return conn.retry.call_with_retry(
  File "/openedx/venv/lib/python3.8/site-packages/redis/retry.py", line 48, in call_with_retry
    fail(error)
  File "/openedx/venv/lib/python3.8/site-packages/redis/client.py", line 1464, in <lambda>
    lambda error: self._disconnect_raise_connect(conn, error),
  File "/openedx/venv/lib/python3.8/site-packages/redis/client.py", line 1451, in _disconnect_raise_connect
    raise error
  File "/openedx/venv/lib/python3.8/site-packages/redis/retry.py", line 45, in call_with_retry
    return do()
  File "/openedx/venv/lib/python3.8/site-packages/redis/client.py", line 1463, in <lambda>
    lambda: command(*args, **kwargs),
  File "/openedx/venv/lib/python3.8/site-packages/redis/connection.py", line 821, in read_response
    response = self._parser.read_response(disable_decoding=disable_decoding)
  File "/openedx/venv/lib/python3.8/site-packages/redis/connection.py", line 320, in read_response
    raw = self._buffer.readline()
  File "/openedx/venv/lib/python3.8/site-packages/redis/connection.py", line 251, in readline
    self._read_from_socket()
  File "/openedx/venv/lib/python3.8/site-packages/redis/connection.py", line 197, in _read_from_socket
    raise ConnectionError(SERVER_CLOSED_CONNECTION_ERROR)
redis.exceptions.ConnectionError: Connection closed by server.
2022-10-19 14:03:20,090 WARNING 1 [py.warnings] [user None] [ip None] warnings.py:109 - /openedx/venv/lib/python3.8/site-packages/celery/worker/consumer/consumer.py:367: CPendingDeprecationWarning: 
In Celery 5.1 we introduced an optional breaking change which
on connection loss cancels all currently executed tasks with late acknowledgement enabled.
These tasks cannot be acknowledged as the connection is gone, and the tasks are automatically redelivered back to the queue.
You can enable this behavior using the worker_cancel_long_running_tasks_on_connection_loss setting.
In Celery 5.1 it is set to False by default. The setting will be set to True by default in Celery 6.0.

  warnings.warn(CANCEL_TASKS_BY_DEFAULT, CPendingDeprecationWarning)

2022-10-19 14:03:20,104 ERROR 1 [celery.worker.consumer.consumer] [user None] [ip None] consumer.py:451 - consumer: Cannot connect to redis://redis:6379/0: Error 111 connecting to redis:6379. Connection refused..
Trying again in 2.00 seconds... (1/100)

2022-10-19 14:03:27,141 INFO 1 [celery.worker.consumer.connection] [user None] [ip None] connection.py:22 - Connected to redis://redis:6379/0
2022-10-19 14:03:27,177 INFO 1 [celery.worker.consumer.mingle] [user None] [ip None] mingle.py:40 - mingle: searching for neighbors
2022-10-19 14:03:28,203 INFO 1 [celery.worker.consumer.mingle] [user None] [ip None] mingle.py:49 - mingle: all alone
2022-10-19 14:03:33,234 INFO 1 [celery.worker.consumer.gossip] [user None] [ip None] gossip.py:145 - missed heartbeat from celery@edx.cms.core.default.%98e9e3377c7e

I have added subdomain for ‘studio’ in azure DNS zone also,
I am confusing with is this problem with my DNS names (it must be a www. )?
Because of this error

?: (2_0.W001) Your URL pattern ‘edx_name_affirmation/v1/verified_name/(?P<verified_name_id>\d+)$’ [name=‘verified_name_by_id’] has a route that contains ‘(?P<’, begins with a ‘^’, or ends with a ‘$’. This was likely an oversight when migrating to django.urls.path().

Please help out on this.

I’m pretty sure that Let’s Encrypt won’t generate a cert for the azure.com domain name. I would get a real domain name (you can get them for 1 USD a year) and then set up the subdomain names for studio app, and preview. Or, something like: edx.mydomain.aaa, studio.edx.mydomain.aaa, preview.edx.mydomain.aaa, and apps.edx.mydomain.aaa

1 Like