跳转到主要内容

Cylc UI 服务器

项目描述

Anaconda-Server Badge Anaconda-Server Badge PyPI forum Test codecov

Cylc UI 服务器

此项目包含 Cylc UI 服务器,该服务器为 Cylc UI 提供服务并与运行的 Cylc 调度器进行通信。它还捆绑了 GUI。

Cylc 网站 | 贡献 | 开发 | 论坛

简介

此存储库中的功能是运行 Cylc 网络用户界面所必需的。

此存储库提供了 Cylc 系统的以下组件。

  • UI

    这是 Cylc 网络应用程序,提供对 Cylc 工作流的控制和监控功能。

    注意 该 UI 在单独的存储库中开发 https://github.com/cylc/cylc-ui

  • UI服务器

    这是一个用于提供Cylc Web UI服务的Web服务器。它连接到正在运行的流程和工作流数据库,以提供UI显示所需的信息。它是一个Jupyter服务器

  • 中心节点

    在多用户设置中,它启动UI服务器,为运行中的服务器提供代理并处理身份验证。它是一个JupyterHub服务器。

安装

Anaconda-Server Badge PyPI Conda-Platforms

有关Cylc组件和全栈Cylc安装的更多信息,请参阅Cylc文档

单用户设置

安装

Conda/Mamba(首选) Pip
conda install cylc-uiserver-base pip install cylc-uiserver

然后启动您的服务器

cylc gui

多用户设置

安装

Conda/Mamba(首选) Pip + Npm
conda install cylc-uiserver pip install cylc-uiserver[hub]
npm install configurable-http-proxy

然后启动您的中心节点

cylc hub

软件包列表

有几个不同的软件包,以满足不同的需求。

工具 软件包 描述 Cylc UI 服务器 Jupyter Hub 可配置HTTP代理
Pip cylc-uiserver 单用户 :heavy_check_mark :x :x
conda cylc-uiserver-base 单用户 :heavy_check_mark :x :x
conda cylc-uiserver-hub-base 多用户(无代理) :heavy_check_mark :heavy_check_mark :x
Pip cylc-uiserver[hub] 多用户(无代理) :heavy_check_mark :heavy_check_mark :x
conda cylc-uiserver 多用户 :heavy_check_mark :heavy_check_mark :heavy_check_mark

可配置HTTP代理软件包(Node JS)提供了Jupyter Hub所需的反向代理,以便将用户的服务器汇集在单个URL后。可以通过conda install configurable-http-proxy安装,但不能通过pip安装(因为它需要Node JS)

其他代理,包括Traefik代理(Python),也可以完成此任务,请参阅Jupyter Hub代理列表

单独安装Jupyter Hub

开始使用Cylc和Jupyter Hub的最简单方法是将它们一起安装和部署,并通过cylc hub命令启动Jupyter Hub。

conda install cylc-uiserver
cylc hub

但是,您也可以将Jupyter Hub从其部署的服务器(例如Jupyter Lab或Cylc UI服务器)中单独部署,并通过jupyterhub命令启动它。

如果您将从Cylc UI服务器单独部署Jupyter Hub,以下配置可能相关

  • Jupyter Hub的spawner.cmd决定了Jupyter Hub运行以启动用户服务器的命令。您可能希望使用包装脚本来激活所需的环境。
  • Jupyter服务器ServerApp.jpserver_extensions配置决定了Jupyter服务器启动时激活哪些Jupyter服务器扩展(例如Jupyter Lab或Cylc UI服务器)。默认行为是激活任何已安装的扩展,但如果被覆盖,您可能需要在此处显式列出cylc-uiserver。
  • Cylc的jupyter_config.py文件包含默认的Cylc配置。这适用于通过cylc hub命令启动的中心节点,但不适用于通过jupyterhub命令启动的中心节点。您可能希望将此文件中的一些配置包括到您的Jupyter Hub配置中。

运行

Cylc UIServer是Jupyter服务器扩展(如JupyterLab)。

单用户设置

作为独立服务器运行,使用URL令牌进行身份验证

# launch the Cylc GUI and open a browser tab
$ cylc gui

# alternatively the same app can be opened with the jupyter command
$ jupyter cylc

注意 默认情况下,身份验证由URL令牌提供。作为替代方案,可以配置密码(请参阅Jupyter服务器文档)。

没有针对用户的授权,因此拥有URL令牌的人可以完全访问服务器。

多用户设置

在具有权限作为其他用户启动cylc进程的用户帐户下运行中央JupyterHub服务器。

# launch the Cylc Hub
# (the default URL is http://localhost:8000)
$ cylc hub

然后用户通过中心节点进行身份验证,该中心节点启动并管理他们的UI服务器。

配置

中心节点

中心节点将按以下顺序加载以下文件

  1. 系统配置

    这些是存储在存储库中的硬编码的Cylc默认值。

    (<python-installation>/cylc/uiserver/jupyter_config.py)

  2. 站点配置

    该文件配置了所有用户的Hub/UIS。默认路径可以通过环境变量CYLC_SITE_CONF_PATH进行更改。

    (/etc/cylc/uiserver/jupyter_config.py)

  3. 用户配置

    此文件

    (~/.cylc/uiserver/jupyter_config.py)

或者可以在命令行中提供一个单个的配置文件。

cylc hub --config

警告 如果在命令行中指定配置文件,将不会加载包含硬编码的Cylc默认值的系统配置。

注意 也可以使用jupyterhub命令运行hub,但是您必须在命令行上手动源配置文件。

有关配置选项的详细信息,请参阅JupyterHub文档。

UI服务器

请参阅Cylc文档中关于所有Cylc特定配置选项的详细信息。

Cylc UI服务器是Jupyter Server的扩展。Jupyter Server可以运行多个扩展。要控制要运行的扩展,请使用ServerApp.jpserver_extensions配置,请参阅Jupyter Server配置文档

默认情况下,UI服务器日志的Cylc部分写入到~/.cylc/uiserver/uiserver.log

UI

可以通过仪表板的“设置”选项配置UI。

目前,这些配置存储在Web浏览器中,因此不会在网络中传输,可能不会持久。

开发

Contributors Commit activity Last commit

欢迎贡献

  1. 从源安装到Python环境中

    pip install -e .[all]
    

    注意 如果您想使用Cylc Flow的开发副本运行,您必须先安装它,否则pip将从PyPi下载最新版本。

  2. 对于UI开发,请遵循cylc-ui项目的开发者说明,然后设置以下配置,以便Cylc使用您的UI构建(而不是默认捆绑的UI构建)

    # ~/.cylc/uiserver/jupyter_config.py
    import os
    c.CylcUIServer.ui_build_dir = os.path.expanduser('~/cylc-ui/dist')
    

关于测试的说明:与cylc-flow不同,cylc-uiserver使用pytest-tornasync插件而不是pytest-asyncio。这意味着您不应该用@pytest.mark.asyncio装饰异步测试函数。

版权和用法条款

版权(C)2019-2024 NIWA & 英国王冠(气象办公室)& 贡献者。

Cylc是免费软件:您可以根据自由软件基金会的GNU通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或(根据您的选择)任何更高版本。

Cylc的发布旨在供公众使用,但没有任何保证;甚至没有关于其适销性或适用于特定目的的暗示性保证。有关详细信息,请参阅GNU通用公共许可证。

您应该已收到Cylc的GNU通用公共许可证副本。如果没有,请参阅GNU许可证

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

cylc_uiserver-1.5.0.tar.gz (2.0 MB 查看哈希值)

上传时间

构建分发

cylc_uiserver-1.5.0-py3-none-any.whl (2.1 MB 查看哈希值)

上传时间 Python 3

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面