installing awx on redhat 7 without internet

Hello awx members,

I would like to know if anyone of you has already installed awx without accessing internet.

It’s what I aim to do since my VM does not access to internet.
I uploaded (through flash drive) the docker images (awx-task, ask-web,memcached, rabbitmq) into my redhat VM,
But I am getting issues when i ran docker, so i can’t get docker containers, no output when i issued docker ps.

If anyone can help?

You probably will need to tag them the way the AWX installer expects. If you take the dockerhub parts out of the inventory file then it’ll look locally for the tag names that we’ve given in the installer.

Thanks Matthew for responding,

Exactly, I found a way to set up docker containers locally. Now i got output when I issued docker ps.
But it can’t connect to AWX web browser, when I had a look to my docker logs (docker logs -f awx_task), the process doesn’t end up.
I don’t know, How many time it will take.
Below some logs I captured.

Traceback (most recent call last):
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/celery/worker/pidbox.py”, line 42, in on_message
self.node.handle_message(body, message)
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/kombu/pidbox.py”, line 129, in handle_message
return self.dispatch(**body)
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/kombu/pidbox.py”, line 112, in dispatch
ticket=ticket)
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/kombu/pidbox.py”, line 135, in reply
serializer=self.mailbox.serializer)
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/kombu/pidbox.py”, line 265, in _publish_reply
**opts
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/kombu/messaging.py”, line 181, in publish
exchange_name, declare,
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/kombu/messaging.py”, line 203, in _publish
mandatory=mandatory, immediate=immediate,
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/amqp/channel.py”, line 1734, in _basic_publish
(0, exchange, routing_key, mandatory, immediate), msg
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/amqp/abstract_channel.py”, line 50, in send_method
conn.frame_writer(1, self.channel_id, sig, args, content)
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/amqp/method_framing.py”, line 166, in write_frame
write(view[:offset])
File “/var/lib/awx/venv/awx/lib/python2.7/site-packages/amqp/transport.py”, line 258, in write
self._write(s)
File “/usr/lib64/python2.7/socket.py”, line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 104] Connection reset by peer
[2018-03-14 12:36:33,345: DEBUG/MainProcess] Closed channel #2
[2018-03-14 12:36:33,347: DEBUG/MainProcess] using channel_id: 2
[2018-03-14 12:36:33,357: DEBUG/MainProcess] Channel open
[2018-03-14 12:36:33,499: INFO/Beat] Scheduler: Sending due task tower_scheduler (awx.main.tasks.awx_periodic_scheduler)
[2018-03-14 12:36:33,506: DEBUG/Beat] awx.main.tasks.awx_periodic_scheduler sent. id->b4db8cd1-0240-4d49-a027-4d8bb11b0fbe
[2018-03-14 12:36:33,508: DEBUG/Beat] beat: Waking up in 10.00 seconds.
[2018-03-14 12:36:33,509: INFO/MainProcess] Received task: awx.main.tasks.awx_periodic_scheduler[b4db8cd1-0240-4d49-a027-4d8bb11b0fbe] expires:[2018-03-14 12:36:53.502995+00:00]
[2018-03-14 12:36:33,510: DEBUG/MainProcess] TaskPool: Apply <function _fast_trace_task at 0x2714c80> (args:(‘awx.main.tasks.awx_periodic_scheduler’, ‘b4db8cd1-0240-4d49-a027-4d8bb11b0fbe’, {‘origin’: ‘gen207@awx’, ‘lang’: ‘py’, ‘task’: ‘awx.main.tasks.awx_periodic_scheduler’, ‘group’: None, ‘root_id’: ‘b4db8cd1-0240-4d49-a027-4d8bb11b0fbe’, u’delivery_info’: {u’priority’: None, u’redelivered’: False, u’routing_key’: u’tower’, u’exchange’: u’‘}, ‘expires’: ‘2018-03-14T12:36:53.502995+00:00’, u’correlation_id’: ‘b4db8cd1-0240-4d49-a027-4d8bb11b0fbe’, ‘retries’: 0, ‘timelimit’: [None, None], ‘argsrepr’: ‘()’, ‘eta’: None, ‘parent_id’: None, u’reply_to’: ‘7f40d202-51d4-3313-91e8-ec160d4a4da5’, ‘id’: ‘b4db8cd1-0240-4d49-a027-4d8bb11b0fbe’, ‘kwargsrepr’: ‘{}’}, u’[, {}, {“chord”: null, “callbacks”: null, “errbacks”: null, “chain”: null}]‘, ‘application/json’, ‘utf-8’) kwargs:{})
[2018-03-14 12:36:33,518: DEBUG/MainProcess] Task accepted: awx.main.tasks.awx_periodic_scheduler[b4db8cd1-0240-4d49-a027-4d8bb11b0fbe] pid:280
2018-03-14 12:36:33,553 DEBUG awx.main.tasks Last scheduler run was: 2018-03-14 12:36:03.803090+00:00
[2018-03-14 12:36:33,615: INFO/ForkPoolWorker-74] Task awx.main.tasks.awx_periodic_scheduler[b4db8cd1-0240-4d49-a027-4d8bb11b0fbe] succeeded in 0.102126766s: None
[2018-03-14 12:36:34,377: DEBUG/MainProcess] pidbox received method add_consumer(queue=u’tower’, exchange=None, routing_key=None, exchange_type=u’direct’) [reply_to:{u’routing_key’: u’d1523282-96d4-3905-8153-41cc40dcecdd’, u’exchange’: u’reply.celery.pidbox’} ticket:1913d931-56af-40e7-8bc0-e6a944d010d7]
[2018-03-14 12:36:34,440: DEBUG/MainProcess] Start from server, version: 0.9, properties: {‘information’: ‘Licensed under the MPL. See http://www.rabbitmq.com/’, ‘product’: ‘RabbitMQ’, ‘copyright’: ‘Copyright (C) 2007-2018 Pivotal Software, Inc.’, ‘capabilities’: {‘exchange_exchange_bindings’: True, ‘connection.blocked’: True, ‘authentication_failure_close’: True, ‘direct_reply_to’: True, ‘basic.nack’: True, ‘per_consumer_qos’: True, ‘consumer_priorities’: True, ‘consumer_cancel_notify’: True, ‘publisher_confirms’: True}, ‘cluster_name’: ‘rabbit@72e855822254’, ‘platform’: ‘Erlang/OTP 20.1.7’, ‘version’: ‘3.7.3’}, mechanisms: [‘AMQPLAIN’, ‘PLAIN’], locales: [u’en_US’]
[2018-03-14 12:36:34,456: DEBUG/MainProcess] using channel_id: 1
[2018-03-14 12:36:34,465: DEBUG/MainProcess] Channel open
[2018-03-14 12:36:34,500: DEBUG/MainProcess] pidbox received method add_consumer(queue=u’tower_instance_router’, exchange=None, routing_key=None, exchange_type=u’direct’) [reply_to:{u’routing_key’: u’d1523282-96d4-3905-8153-41cc40dcecdd’, u’exchange’: u’reply.celery.pidbox’} ticket:ab717d4b-32f0-4bef-bcdc-4c7e7596fb76]
[2018-03-14 12:36:34,526: DEBUG/MainProcess] pidbox received method add_consumer(queue=u’awx’, exchange=None, routing_key=None, exchange_type=u’direct’) [reply_to:{u’routing_key’: u’d1523282-96d4-3905-8153-41cc40dcecdd’, u’exchange’: u’reply.celery.pidbox’} ticket:40a5827d-8b0d-4f73-962b-7eda5db28ca7]
2018-03-14 12:36:34,541 INFO awx.main.tasks Workers on tower node ‘awx’ removed from queues and added to queues [u’tower’, ‘tower_instance_router’, u’awx’]
2018-03-14 12:36:34,561 INFO awx.main.tasks Worker on tower node ‘awx’ updated celery routes {‘awx.main.tasks.purge_old_stdout_files’: {‘queue’: u’awx’, ‘routing_key’: u’awx’}, ‘awx.main.tasks.cluster_node_heartbeat’: {‘queue’: u’awx’, ‘routing_key’: u’awx’}} all routes are now {‘awx.main.tasks.purge_old_stdout_files’: {‘queue’: u’awx’, ‘routing_key’: u’awx’}, ‘awx.main.tasks.cluster_node_heartbeat’: {‘queue’: u’awx’, ‘routing_key’: u’awx’}}
[2018-03-14 12:36:34,582: INFO/ForkPoolWorker-75] Task awx.main.tasks.handle_ha_toplogy_changes[a9a28ef2-5e13-4b91-86b1-701a67cc432f] succeeded in 1.481527734s: None
[2018-03-14 12:36:37,426: INFO/MainProcess] Scaling down 2 processes.
[2018-03-14 12:36:37,592: DEBUG/MainProcess] heartbeat_tick : for connection 800629bd82344863ba232d1c095e88ec
[2018-03-14 12:36:37,593: DEBUG/MainProcess] heartbeat_tick : Prev sent/recv: 488/3792, now - 498/3852, monotonic - 1935.1502791, last_heartbeat_sent - 1935.15021471, heartbeat int. - 60 for connection 800629bd82344863ba232d1c095e88ec
[2018-03-14 12:36:43,517: INFO/Beat] Scheduler: Sending due task task_manager (awx.main.scheduler.tasks.run_task_manager)
[2018-03-14 12:36:43,537: INFO/MainProcess] Received task: awx.main.scheduler.tasks.run_task_manager[cf72a009-6bbb-4020-8274-2d96f681a003] expires:[2018-03-14 12:37:03.523407+00:00]
[2018-03-14 12:36:43,541: INFO/MainProcess] Scaling up 1 processes.
[2018-03-14 12:36:43,551: DEBUG/Beat] awx.main.scheduler.tasks.run_task_manager sent. id->cf72a009-6bbb-4020-8274-2d96f681a003
[2018-03-14 12:36:43,552: DEBUG/Beat] beat: Waking up in 19.94 seconds.
[2018-03-14 12:36:43,725: DEBUG/MainProcess] TaskPool: Apply <function _fast_trace_task at 0x2714c80> (args:(‘awx.main.scheduler.tasks.run_task_manager’, ‘cf72a009-6bbb-4020-8274-2d96f681a003’, {‘origin’: ‘gen207@awx’, ‘lang’: ‘py’, ‘task’: ‘awx.main.scheduler.tasks.run_task_manager’, ‘group’: None, ‘root_id’: ‘cf72a009-6bbb-4020-8274-2d96f681a003’, u’delivery_info’: {u’priority’: 0, u’redelivered’: False, u’routing_key’: u’tower’, u’exchange’: u’‘}, ‘expires’: ‘2018-03-14T12:37:03.523407+00:00’, u’correlation_id’: ‘cf72a009-6bbb-4020-8274-2d96f681a003’, ‘retries’: 0, ‘timelimit’: [None, None], ‘argsrepr’: ‘()’, ‘eta’: None, ‘parent_id’: None, u’reply_to’: ‘7f40d202-51d4-3313-91e8-ec160d4a4da5’, ‘id’: ‘cf72a009-6bbb-4020-8274-2d96f681a003’, ‘kwargsrepr’: ‘{}’}, u’[, {}, {“chord”: null, “callbacks”: null, “errbacks”: null, “chain”: null}]‘, ‘application/json’, ‘utf-8’) kwargs:{})
[2018-03-14 12:36:43,733: DEBUG/ForkPoolWorker-76] Closed channel #1
[2018-03-14 12:36:43,748: DEBUG/MainProcess] basic.qos: prefetch_count->276
[2018-03-14 12:36:44,195: DEBUG/MainProcess] Task accepted: awx.main.scheduler.tasks.run_task_manager[cf72a009-6bbb-4020-8274-2d96f681a003] pid:282
2018-03-14 12:36:44,271 DEBUG awx.main.scheduler Running Tower task manager.
2018-03-14 12:36:44,294 DEBUG awx.main.scheduler Starting Scheduler
[2018-03-14 12:36:44,461: INFO/ForkPoolWorker-76] Task awx.main.scheduler.tasks.run_task_manager[cf72a009-6bbb-4020-8274-2d96f681a003] succeeded in 0.255304416s: None
[2018-03-14 12:36:57,595: DEBUG/MainProcess] heartbeat_tick : for connection 800629bd82344863ba232d1c095e88ec
[2018-03-14 12:36:57,596: DEBUG/MainProcess] heartbeat_tick : Prev sent/recv: 498/3852, now - 500/3886, monotonic - 1955.1538332, last_heartbeat_sent - 1955.1536571, heartbeat int. - 60 for connection 800629bd82344863ba232d1c095e88ec
2018-03-14 12:37:00,605 ERRO pool awx-config-watcher event buffer overflowed, discarding event 19
[2018-03-14 12:37:03,501: INFO/Beat] Scheduler: Sending due task tower_scheduler (awx.main.tasks.awx_periodic_scheduler)
[2018-03-14 12:37:03,516: INFO/MainProcess] Received task: awx.main.tasks.awx_periodic_scheduler[10bf589a-3a43-4994-a58c-5c9c901a947e] expires:[2018-03-14 12:37:23.507380+00:00]
[2018-03-14 12:37:03,517: DEBUG/MainProcess] TaskPool: Apply <function _fast_trace_task at 0x2714c80> (args:(‘awx.main.tasks.awx_periodic_scheduler’, ‘10bf589a-3a43-4994-a58c-5c9c901a947e’, {‘origin’: ‘gen207@awx’, ‘lang’: ‘py’, ‘task’: ‘awx.main.tasks.awx_periodic_scheduler’, ‘group’: None, ‘root_id’: ‘10bf589a-3a43-4994-a58c-5c9c901a947e’, u’delivery_info’: {u’priority’: None, u’redelivered’: False, u’routing_key’: u’tower’, u’exchange’: u’‘}, ‘expires’: ‘2018-03-14T12:37:23.507380+00:00’, u’correlation_id’: ‘10bf589a-3a43-4994-a58c-5c9c901a947e’, ‘retries’: 0, ‘timelimit’: [None, None], ‘argsrepr’: ‘()’, ‘eta’: None, ‘parent_id’: None, u’reply_to’: ‘7f40d202-51d4-3313-91e8-ec160d4a4da5’, ‘id’: ‘10bf589a-3a43-4994-a58c-5c9c901a947e’, ‘kwargsrepr’: ‘{}’}, u’[, {}, {“chord”: null, “callbacks”: null, “errbacks”: null, “chain”: null}]‘, ‘application/json’, ‘utf-8’) kwargs:{})
[2018-03-14 12:37:03,517: DEBUG/Beat] awx.main.tasks.awx_periodic_scheduler sent. id->10bf589a-3a43-4994-a58c-5c9c901a947e
[2018-03-14 12:37:03,520: DEBUG/MainProcess] Task accepted: awx.main.tasks.awx_periodic_scheduler[10bf589a-3a43-4994-a58c-5c9c901a947e] pid:282
[2018-03-14 12:37:03,521: INFO/Beat] Scheduler: Sending due task task_manager (awx.main.scheduler.tasks.run_task_manager)
[2018-03-14 12:37:03,529: DEBUG/Beat] awx.main.scheduler.tasks.run_task_manager sent. id->3a085352-d819-47af-9619-3dce05b8061b
[2018-03-14 12:37:03,533: INFO/MainProcess] Received task: awx.main.scheduler.tasks.run_task_manager[3a085352-d819-47af-9619-3dce05b8061b] expires:[2018-03-14 12:37:23.524126+00:00]
[2018-03-14 12:37:03,534: INFO/MainProcess] Scaling up 1 processes.
[2018-03-14 12:37:03,550: DEBUG/Beat] beat: Waking up in 19.96 seconds.
2018-03-14 12:37:03,576 DEBUG awx.main.tasks Last scheduler run was: 2018-03-14 12:36:33.548845+00:00
[2018-03-14 12:37:03,650: INFO/ForkPoolWorker-76] Task awx.main.tasks.awx_periodic_scheduler[10bf589a-3a43-4994-a58c-5c9c901a947e] succeeded in 0.130333087s: None
[2018-03-14 12:37:03,778: DEBUG/MainProcess] TaskPool: Apply <function _fast_trace_task at 0x2714c80> (args:(‘awx.main.scheduler.tasks.run_task_manager’, ‘3a085352-d819-47af-9619-3dce05b8061b’, {‘origin’: ‘gen207@awx’, ‘lang’: ‘py’, ‘task’: ‘awx.main.scheduler.tasks.run_task_manager’, ‘group’: None, ‘root_id’: ‘3a085352-d819-47af-9619-3dce05b8061b’, u’delivery_info’: {u’priority’: 0, u’redelivered’: False, u’routing_key’: u’tower’, u’exchange’: u’‘}, ‘expires’: ‘2018-03-14T12:37:23.524126+00:00’, u’correlation_id’: ‘3a085352-d819-47af-9619-3dce05b8061b’, ‘retries’: 0, ‘timelimit’: [None, None], ‘argsrepr’: ‘()’, ‘eta’: None, ‘parent_id’: None, u’reply_to’: ‘7f40d202-51d4-3313-91e8-ec160d4a4da5’, ‘id’: ‘3a085352-d819-47af-9619-3dce05b8061b’, ‘kwargsrepr’: ‘{}’}, u’[, {}, {“chord”: null, “callbacks”: null, “errbacks”: null, “chain”: null}]', ‘application/json’, ‘utf-8’) kwargs:{})
[2018-03-14 12:37:03,787: DEBUG/MainProcess] basic.qos: prefetch_count->280
[2018-03-14 12:37:03,802: DEBUG/MainProcess] Task accepted: awx.main.scheduler.tasks.run_task_manager[3a085352-d819-47af-9619-3dce05b8061b] pid:282
2018-03-14 12:37:03,841 DEBUG awx.main.scheduler Running Tower task manager.
2018-03-14 12:37:03,862 DEBUG awx.main.scheduler Starting Scheduler
[2018-03-14 12:37:03,972: INFO/ForkPoolWorker-76] Task awx.main.scheduler.tasks.run_task_manager[3a085352-d819-47af-9619-3dce05b8061b] succeeded in 0.170554136s: None

The awx_task container is the container that runs the AWX background tasks. You’ll need to look at the awx_web container logs to see why you can’t connect there.

Dear Matthew, the logs that i saw come from AWX server with the 5 containers but as my goal is to have an external database that’s why I let down this method and going over with a method which allows me to install awx with an external postgress database.

So I set up postgres container in database server (redhat vm) and the other hand I run the playbook in AWX server with memcached, rabbitmq, awx_task and awx_web containers.

After running the ansible-playbook -i inventory install.yml, the 4 containers ran properly but I had a look to the docker logs -f awx_task (or awx_web), it issued that it can’t connect to database VM.

As in awx server, I assigned in inventory file

pg_hostname=postgresserver
pg_username=postgres
pg_password=postgres
pg_database=postgres
pg_port=5432

In /etc/ansible/ansible.cfg file
inventory= /etc/ansible/hosts

In /etc/ansible/hosts
postgresserver
10.200.14.102

in /etc/hosts
10.200.14.102 postgresserver

Did I forget to point something out ?

Thanks in advance

On the surface that appears fine but you’re not showing me the error message that the awx_web container generated, you only showed me awx_task. I don’t see any errors in there other than the innocuous one that appeared at startup.

Well, now i am at home and i don’t have access to VM company.
Otherwise, I tried to repeat the scenario into my laptop ( running the 5 containers in the same VM server) but it shows same results in awx_task and the process doesn’t end up while in my laptop i am able to access to AWX web browser without the awx_task and awx_web end up. I don’t understand what’s the matter with VM company.
I can assume in the same VM which I aim to install awx there is an old ansible tower installation but before i begin the installation, I removed tower files (in var directory) and stopped tower process (service ansible-tower stop).

However when I tried to access in IE browser, It just appears the awx icon but not all the awx bashboard.
I don’t know why awx functionalities do not appear totally on browser.

Here the awx_web captured on my laptop.
359 static files copied to ‘/var/lib/awx/public/static’.
2018-03-14 19:17:45,407 CRIT Supervisor running as root (no user in config file)
Unlinking stale socket /tmp/supervisor.sock
2018-03-14 19:17:45,911 INFO RPC interface ‘supervisor’ initialized
2018-03-14 19:17:45,912 CRIT Server ‘unix_http_server’ running without any HTTP authentication checking
2018-03-14 19:17:45,913 INFO supervisord started with pid 18
2018-03-14 19:17:46,916 INFO spawned: ‘awx-config-watcher’ with pid 21
2018-03-14 19:17:46,920 INFO spawned: ‘daphne’ with pid 22
2018-03-14 19:17:46,924 INFO spawned: ‘nginx’ with pid 23
2018-03-14 19:17:46,929 INFO spawned: ‘uwsgi’ with pid 24
*** Starting uWSGI 2.0.14 (64bit) on [Wed Mar 14 19:17:47 2018] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-16) on 12 February 2018 19:46:55
os: Linux-3.13.0-141-generic #190-Ubuntu SMP Fri Jan 19 12:52:38 UTC 2018
nodename: awxweb
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 2
current working directory: /var/lib/awx
detected binary path: /var/lib/awx/venv/awx/bin/uwsgi
uWSGI running as root, you can use --uid/–gid/–chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
your memory page size is 4096 bytes
*** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers ***
detected max file descriptor number: 524288
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address 127.0.0.1:8050 fd 3
Python version: 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
2018-03-14 19:17:47,153 INFO exited: awx-config-watcher (exit status 0; not expected)
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x249c5a0
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 608640 bytes (594 KB) for 5 cores
*** Operational MODE: preforking ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 24)
spawned uWSGI worker 1 (pid: 25, cores: 1)
spawned uWSGI worker 2 (pid: 26, cores: 1)
spawned uWSGI worker 3 (pid: 27, cores: 1)
spawned uWSGI worker 4 (pid: 28, cores: 1)
spawned uWSGI worker 5 (pid: 29, cores: 1)
2018-03-14 19:17:48,872 INFO spawned: ‘awx-config-watcher’ with pid 35
2018-03-14 19:17:48,876 INFO success: daphne entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-03-14 19:17:48,880 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-03-14 19:17:48,880 INFO success: uwsgi entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-03-14 19:17:49,885 INFO success: awx-config-watcher entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-03-14 19:17:49,944 INFO exited: awx-config-watcher (exit status 0; expected)
2018-03-14 19:18:26,786 INFO Starting server at tcp:port=8051:interface=127.0.0.1, channel layer awx.asgi:channel_layer.
2018-03-14 19:18:26,788 INFO HTTP/2 support not enabled (install the http2 and tls Twisted extras)
2018-03-14 19:18:26,792 INFO Using busy-loop synchronous mode on channel layer
2018-03-14 19:18:26,793 INFO Listening on endpoint tcp:port=8051:interface=127.0.0.1
WSGI app 0 (mountpoint=‘’) ready in 41 seconds on interpreter 0x249c5a0 pid: 26 (default app)
WSGI app 0 (mountpoint=‘’) ready in 42 seconds on interpreter 0x249c5a0 pid: 27 (default app)
WSGI app 0 (mountpoint=‘’) ready in 42 seconds on interpreter 0x249c5a0 pid: 29 (default app)
WSGI app 0 (mountpoint=‘’) ready in 42 seconds on interpreter 0x249c5a0 pid: 25 (default app)
WSGI app 0 (mountpoint=‘’) ready in 42 seconds on interpreter 0x249c5a0 pid: 28 (default app)