NeonGeckoCom / neon-hub-installer

Installer script for Neon Hub, a centralized private AI server featuring Neon.AI services
Other
2 stars 1 forks source link

v1 #1

Closed mikejgray closed 6 days ago

mikejgray commented 1 week ago

The initial commit is so that I can pull this down and test on arbitrary VMs. Once it's in a distributable and usable form, I'll close this issue. 🙂

NeonDaniel commented 1 week ago

Some minor readme feedback:

NeonDaniel commented 1 week ago

Feedback from running the installer:

I seem to have ended up with a non-working install..

docker logs -f neon-iris:

Connecting to neon-rabbitmq:5672
Traceback (most recent call last):
  File "/usr/local/bin/iris", line 8, in <module>
    sys.exit(neon_iris_cli())
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/neon_iris/cli.py", line 135, in start_gradio
    chat = GradIOClient()
  File "/usr/local/lib/python3.8/site-packages/neon_iris/web_client.py", line 51, in __init__
    NeonAIClient.__init__(self, config.get("MQ"))
  File "/usr/local/lib/python3.8/site-packages/neon_iris/client.py", line 63, in __init__
    self._connection = self._init_mq_connection()
  File "/usr/local/lib/python3.8/site-packages/neon_iris/client.py", line 384, in _init_mq_connection
    mq_connection = NeonMQHandler(mq_config, "mq_handler", self._vhost)
  File "/usr/local/lib/python3.8/site-packages/neon_utils/mq_utils.py", line 66, in __init__
    self.connection = pika.BlockingConnection(
  File "/usr/local/lib/python3.8/site-packages/pika/adapters/blocking_connection.py", line 360, in __init__
    self._impl = self._create_connection(parameters, _impl_class)
  File "/usr/local/lib/python3.8/site-packages/pika/adapters/blocking_connection.py", line 451, in _create_connection
    raise self._reap_last_connection_workflow_error(error)
pika.exceptions.AMQPConnectionError
NeonDaniel commented 1 week ago

RMQ docker logs:

=INFO REPORT==== 15-Oct-2024::15:50:29.976655 ===
    alarm_handler: {set,{system_memory_high_watermark,[]}}
2024-10-15 15:50:30.690982+00:00 [error] <0.253.0> Failed to update enabled plugins file "/etc/rabbitmq/enabled_plugins" from $RABBITMQ_ENABLED_PLUGINS: permission denied

BOOT FAILED
===========
Error during startup: {error,failed_to_update_enabled_plugins_file}

2024-10-15 15:50:30.702343+00:00 [error] <0.253.0>
2024-10-15 15:50:30.702343+00:00 [error] <0.253.0> BOOT FAILED
2024-10-15 15:50:30.702343+00:00 [error] <0.253.0> ===========
2024-10-15 15:50:30.702343+00:00 [error] <0.253.0> Error during startup: {error,failed_to_update_enabled_plugins_file}
2024-10-15 15:50:30.702343+00:00 [error] <0.253.0>
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>   crasher:
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     initial call: application_master:init/4
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     pid: <0.252.0>
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     registered_name: []
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     exception exit: {failed_to_update_enabled_plugins_file,
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>                         {rabbit,start,[normal,[]]}}
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>       in function  application_master:init/4 (application_master.erl, line 142)
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     ancestors: [<0.251.0>]
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     message_queue_len: 1
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     messages: [{'EXIT',<0.253.0>,normal}]
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     links: [<0.251.0>,<0.44.0>]
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     dictionary: []
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     trap_exit: true
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     status: running
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     heap_size: 376
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     stack_size: 28
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>     reductions: 167
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>   neighbours:
2024-10-15 15:50:31.703603+00:00 [error] <0.252.0>
2024-10-15 15:50:31.706181+00:00 [notice] <0.44.0> Application rabbit exited with reason: {failed_to_update_enabled_plugins_file,{rabbit,start,[normal,[]]}}
Runtime terminating during boot (terminating)

Crash dump is being written to: erl_crash.dump...[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
[os_mon] memory supervisor port (memsup): Erlang has closed

Are the .yml files in neon-hub-installer/ansible referenced by containers? This could be a permissions issue as those are in /home/d_mcknight while the service configs are in /home/neon

NeonDaniel commented 1 week ago

For service credentials (Wolfram Alpha, OpenWeatherMap, etc.), consider a couple pages in the installer to setup/skip, OR a post-install web UI (probably overlaps or is the same as the configuration management UI)

mikejgray commented 1 week ago

For service credentials (Wolfram Alpha, OpenWeatherMap, etc.), consider a couple pages in the installer to setup/skip, OR a post-install web UI (probably overlaps or is the same as the configuration management UI)

I figured for phase 1 we can just give instructions on how to do it in neon.yaml. Phase 2 we can make it configurable in the configuration management UI

mikejgray commented 1 week ago

Most feedback addressed in https://github.com/OscillateLabsLLC/neon-hub-installer/pull/4/files

NeonDaniel commented 1 week ago

I figured for phase 1 we can just give instructions on how to do it in neon.yaml. Phase 2 we can make it configurable in the configuration management UI

Just to clarify, I think in the SoW document we had the installer as Phase 1.A and the management UI as Phase 1.B. I'm satisfied with instructions for the first release of this installer though and the management UI to follow

mikejgray commented 6 days ago

Technically this is v0.0.3, but we're ready to close this out 🙂