Fresh install and test workflow does not work
devinmclean opened this issue · 4 comments
Using a fresh Xubuntu 18.04 install with the latest versions of Docker CE and docker-compose, and following the instructions on the current branch's github page (https://github.com/nsacyber/WALKOFF/blob/1.0.0-alpha.1/README.md), I am unable to execute a test hello_world workflow. Inspecting the umpire logs in Portainer, I see the following error:
Traceback (most recent call last):,
File "/usr/local/lib/python3.7/runpy.py", line 193, in _run_module_as_main,
"__main__", mod_spec),
File "/usr/local/lib/python3.7/runpy.py", line 85, in _run_code,
exec(code, run_globals),
File "/app/umpire/umpire.py", line 544, in <module>,
debug=args.debug),
File "/usr/local/lib/python3.7/asyncio/runners.py", line 43, in run,
return loop.run_until_complete(main),
File "/usr/local/lib/python3.7/asyncio/base_events.py", line 579, in run_until_complete,
return future.result(),
File "/app/umpire/umpire.py", line 83, in run,
async with connect_to_redis_pool(config.REDIS_URI) as redis, aiohttp.ClientSession() as session, \,
File "/usr/local/lib/python3.7/contextlib.py", line 170, in __aenter__,
return await self.gen.__anext__(),
File "/app/common/redis_helpers.py", line 12, in connect_to_redis_pool,
redis = await aioredis.create_redis_pool(redis_uri),
File "/usr/local/lib/python3.7/site-packages/aioredis/commands/__init__.py", line 201, in create_redis_pool,
loop=loop),
File "/usr/local/lib/python3.7/site-packages/aioredis/pool.py", line 56, in create_pool,
await pool._fill_free(override_min=False),
File "/usr/local/lib/python3.7/site-packages/aioredis/pool.py", line 383, in _fill_free,
conn = await self._create_new_connection(self._address),
File "/usr/local/lib/python3.7/site-packages/aioredis/connection.py", line 108, in create_connection,
timeout, loop=loop),
File "/usr/local/lib/python3.7/asyncio/tasks.py", line 414, in wait_for,
return await fut,
File "/usr/local/lib/python3.7/site-packages/aioredis/stream.py", line 19, in open_connection,
lambda: protocol, host, port, **kwds),
File "/usr/local/lib/python3.7/asyncio/base_events.py", line 963, in create_connection,
', '.join(str(exc) for exc in exceptions))),
OSError: Multiple exceptions: [Errno 111] Connect call failed ('23.217.138.107', 6379), [Errno 111] Connect call failed ('23.202.231.166', 6379),
It appears that there is a configuration for 23.202.231.166 that is not documented as needing to be changed during the install process.
Those IPs aren't configured anywhere in our code; that would be what the "redis" hostname resolves to within your walkoff_default network.
The Umpire may start before Redis is ready, in which case it should restart and attempt connecting again, but you may want to try redeploying the stack.
I've mentioned the "bootloader" effort we're working on in a couple of other issues, which aims to smooth out deployment issues such as this one by properly waiting for services to be available instead of just the container coming up.
Thank you for your reply. Can you provide any quick guidance on configuring the walkoff_default network variables/settings?
The walkoff_default network can be configured by editing the top level docker-compose.yml:
Line 190 in 24a3df8
Some Docker Compose documentation on configuring networks: https://docs.docker.com/compose/networking/#specify-custom-networks
Assuming a resolution has been reached with new version of Walkoff. Closing this issue.