用于管理Galaxy服务器的命令行工具
项目描述
Galaxy服务器的进程管理。
概述
现代Galaxy服务器运行多个不同的进程:用于服务Web应用的gunicorn,用于异步任务的celery,用于容错上传的tusd,用于作业处理的独立Galaxy进程,以及更多。Gravity是Galaxy的进程管理器,使配置和运行这些服务变得简单。
安装Gravity将为您提供两个可执行文件,galaxyctl,用于管理Galaxy各种进程的启动、停止和日志记录,以及galaxy,可以用于在前台运行Galaxy服务器。
快速入门
安装
需要Python 3.7或更高版本。Gravity可以独立于Galaxy安装,但自Galaxy 22.01以来,它也是Galaxy的依赖项。如果您已安装Galaxy,那么Gravity已经安装在了Galaxy的虚拟环境中。
独立安装
$ pip install gravity
用法
从Galaxy源代码签出的根目录开始,在首次运行(或运行Galaxy的./scripts/common_startup.sh)之后,激活Galaxy的虚拟环境,这将把Gravity的galaxyctl和galaxy命令添加到您的$PATH中。
$ . ./.venv/bin/activate
$ galaxyctl --help
Usage: galaxyctl [OPTIONS] COMMAND [ARGS]...
Manage Galaxy server configurations and processes.
... additional help output
您可以使用galaxy命令启动并运行Galaxy,使其在前台运行。
$ galaxy
Registered galaxy config: /srv/galaxy/config/galaxy.yml
Creating or updating service gunicorn
Creating or updating service celery
Creating or updating service celery-beat
celery: added process group
2022-01-20 14:44:24,619 INFO spawned: 'celery' with pid 291651
celery-beat: added process group
2022-01-20 14:44:24,620 INFO spawned: 'celery-beat' with pid 291652
gunicorn: added process group
2022-01-20 14:44:24,622 INFO spawned: 'gunicorn' with pid 291653
celery STARTING
celery-beat STARTING
gunicorn STARTING
==> /srv/galaxy/var/gravity/log/gunicorn.log <==
...log output follows...
Galaxy将持续运行并输出日志到标准输出,直到使用CTRL+C终止。
更多详细的配置和用法示例,尤其是有关生产Galaxy服务器的示例,可以在完整文档中找到。
历史
1.0.6
@mvdbeek在https://github.com/galaxyproject/gravity/pull/118中支持pydantic v1和v2
@jvanbraekel在https://github.com/galaxyproject/gravity/pull/116中修复了GalaxyReportsService崩溃并删除了config_type
@natefoo在https://github.com/galaxyproject/gravity/pull/119中支持运行多个tusds并控制hooks-http的值
1.0.5
@heisner-tillman在https://github.com/galaxyproject/gravity/pull/118中支持pydantic v1和v2
1.0.4
@abretaud在https://github.com/galaxyproject/gravity/pull/110中改进了程序名称的可读性,并在每次更改时重新读取配置
@abretaud在https://github.com/galaxyproject/gravity/pull/112中移除了不需要的supervisorctl update调用
@sveinugu在https://github.com/galaxyproject/gravity/pull/114中对galaxy PR 16795进行了最小的路径更改
1.0.3
@natefoo在https://github.com/galaxyproject/gravity/pull/105中,除非必要,否则不创建supervisor conf目录,并使用正确用户创建gravity数据目录
1.0.2
@natefoo在https://github.com/galaxyproject/gravity/pull/102中固定了gx-it-proxy的最小包版本
1.0.1
@sveinugu在https://github.com/galaxyproject/gravity/pull/100中添加了gx-it-proxy的配置,以支持基于路径的代理
1.0.0
版本1.0.0是Gravity的重要更新,包括其功能和特性。虽然Gravity 1.x旨在与0.x向后兼容,但强烈建议在升级到Gravity 1.x或Galaxy 23.0(它依赖于Gravity 1.x)时[阅读文档](https://gravity.readthedocs.io/en/latest/),以充分利用新功能。
@natefoo在https://github.com/galaxyproject/gravity/pull/77中支持systemd作为进程管理器
@natefoo在https://github.com/galaxyproject/gravity/pull/80中实现了与单个实例一起工作的全无状态模式以及1.0的其他改进
@natefoo在https://github.com/galaxyproject/gravity/pull/81中实现了多unicorn滚动重启和一般多实例服务支持
@natefoo在https://github.com/galaxyproject/gravity/pull/83中确保在由不同的Gravity配置文件管理时,不要覆盖其他Galaxy的systemd单元
@natefoo在https://github.com/galaxyproject/gravity/pull/85中确保在优雅地终止时不要重启tusd
@natefoo在https://github.com/galaxyproject/gravity/pull/86中默认读取job_conf.yml,如果未设置job_config_file
修复了银河根路径中的空格问题,由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/87 修复了 galaxy 入口点
在执行时,更新现有环境变量以使用程序环境变量,而不是相反,由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/93 完成
由于仅在内部由 @natefoo 使用,因此在文档中隐藏“exec” ServiceCommandStyle,由 https://github.com/galaxyproject/gravity/pull/94 完成
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/95 更新了设置文档生成器的更新
如果配置中设置了 virtualenv,则由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/97 设置 $VIRTUAL_ENV
如果设置了 virtualenv,则由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/98 添加 venv 二进制目录到 $PATH
0.13.6
由 @Slugger70 在 https://github.com/galaxyproject/gravity/pull/76 修复了 gunicorn --preload 的优雅方法
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/79 添加了 --version 选项以获取 Gravity 版本
由 @abretaud 在 https://github.com/galaxyproject/gravity/pull/91 修复了停止 gx-it-proxy 的问题
0.13.5
如果 Gravity 配置中设置了 virtualenv,并且启用了 gx-it-proxy,则由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/71 自动将其 bin 目录添加到 $PATH
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/73 以通用方式支持将设置转换为命令行参数
0.13.4
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/68 修复了启动测试
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/70 修复了在处理程序上设置环境变量的问题
0.13.3
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/65 不要使用 gunicorn 日志选项与 unicornherder
0.13.2
由 @jdavcs 在 https://github.com/galaxyproject/gravity/pull/62 不要在子进程调用中覆盖 PATH
由 @mvdbeek 在 https://github.com/galaxyproject/gravity/pull/64 只发送预创建钩子
0.13.1
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/58 设置环境设置的默认值
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/59 不要在注销、注册和重命名子命令中捕获异常
在作业配置字典中的处理字典中的 processes 是字典,而不是列表,由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/60 完成
0.13.0
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/47 添加了启用/禁用 gunicorn、celery 和 celery-beat 服务的选项
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/48 添加了从单独的文件和文档中包含 gravity 配置的能力
如果未使用 unicornherder,则由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/49 默认将 preload 设置为 true
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/50 添加了指定 tusd 路径的选项
由 @natefoo 在 https://github.com/galaxyproject/gravity/pull/56 支持按服务设置环境变量
0.12.0
由@nsoranzo修复了log_dir描述中的错别字,详情请见https://github.com/galaxyproject/gravity/pull/44
由@natefoo修复了单个服务的快捷方式问题,详情请见https://github.com/galaxyproject/gravity/pull/45
由@mvdbeek为celery beat和celery workers添加了额外的选项,详情请见https://github.com/galaxyproject/gravity/pull/46
0.11.0
由@mvdbeek允许通过环境变量设置supervisor套接字路径,详情请见https://github.com/galaxyproject/gravity/pull/36
由@mvdbeek在存在非样本galaxy.yml的情况下自动切换到非样本galaxy.yml,详情请见https://github.com/galaxyproject/gravity/pull/39
由@mvdbeek添加了pydantic配置模式,详情请见https://github.com/galaxyproject/gravity/pull/42
由@mvdbeek为galaxy和galaxyctl start添加了–quiet选项,详情请见https://github.com/galaxyproject/gravity/pull/40
由@mvdbeek添加了对yaml作业配置的支持,详情请见https://github.com/galaxyproject/gravity/pull/37
由@mvdbeek为gunicorn添加了–preload支持,详情请见https://github.com/galaxyproject/gravity/pull/41
由@natefoo支持运行tusd,详情请见https://github.com/galaxyproject/gravity/pull/23
0.10.0
由@natefoo修复了存在job_conf.xml但没有定义处理器的情况,详情请见https://github.com/galaxyproject/gravity/pull/24
由@nsoranzo修复了当配置文件部分为空时不抛出错误的情况,详情请见https://github.com/galaxyproject/gravity/pull/25
由@natefoo添加了对静态处理器和未定义处理器的job_conf.xml的测试,详情请见https://github.com/galaxyproject/gravity/pull/26
由@ic4f修复了readme中的少量错别字,详情请见https://github.com/galaxyproject/gravity/pull/27
由@mvdbeek将配置移动到galaxy.yml文件的gravity键下,详情请见https://github.com/galaxyproject/gravity/pull/28
由@mvdbeek修复了已解决的galaxy.yml.sample符号链接问题,详情请见https://github.com/galaxyproject/gravity/pull/31
由@mvdbeek通过gravity支持管理gx-it-proxy,详情请见https://github.com/galaxyproject/gravity/pull/32
0.9
由@mvdbeek支持Gunicorn/fastAPI,click支持,并添加了测试,详情请见https://github.com/galaxyproject/gravity/pull/14
由@natefoo不再在Python 3.6上测试,因为Python 3.6不受支持,详情请见https://github.com/galaxyproject/gravity/pull/17
由@natefoo更新了README。还修复了README中提到的各种小错误和其他问题的修复,详情请见https://github.com/galaxyproject/gravity/pull/18
由@natefoo添加了unicornherder支持,详情请见https://github.com/galaxyproject/gravity/pull/15
由@natefoo将用于start -f的日志跟踪暴露为其自己的子命令,详情请见https://github.com/galaxyproject/gravity/pull/16
由@natefoo改进了与Galaxy的run.sh的集成,详情请见https://github.com/galaxyproject/gravity/pull/19
由@natefoo在supervisord中使用相对路径,详情请见https://github.com/galaxyproject/gravity/pull/21
总体上借鉴了planemo的想法和代码。
改进AttributeDict,使其能够具有“隐藏”项(以_开头的任何内容),这些项不会进行序列化。它还可以自我序列化,并通过类方法进行反序列化创建。这简化了在新的GravityState子类中持久化状态数据的使用。
0.8.3
将galaxycfg和galaxyadm命令合并为galaxy。
0.8.2
允许通过start、stop和restart方法直接将单个服务的名称传递给supervisorctl。
修复了一个问题,当使用自动虚拟env安装方法时,uWSGI无法启动。
0.8.1
由于我删除了PyPI上的0.8文件,因此进行了版本升级。尽管它允许你删除它们,但一旦上传就不能再次上传...
0.8
如果从Galaxy根目录(或子目录)调用,则在galaxy start中添加自动注册。
使galaxycfg remove除了配置文件路径外,还可以接受实例名称作为参数。
使用与实例名称生成的相同哈希作为生成虚拟env名称的哈希,这样虚拟env更容易被识别为属于配置。
从galaxyadmin重命名为gravity(感谢John Chilton)。
0.7
根据Nicola Soranzo的建议,添加了galaxyadm子命令graceful。
如果请求,则将uWSGI安装到配置的虚拟env中。
删除了所有对Galaxy和eggs的依赖。
将项目从我从Galaxy克隆的仓库移动到了其自己的仓库。
较早的
作为Galaxy代码的一部分,正在进行的改进。
项目详情
下载文件
为您的平台下载文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
gravity-1.0.6.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fa365719724a82c5ca0a0bbd46676dd0fa7a7f5ba1cc02d0b1fa994b473ebab8 |
|
MD5 | f325314b08cb010766437ce0a96896aa |
|
BLAKE2b-256 | 4b1f641eba91a45181db440525030a01727224f081042b30c677a04d68a67725 |