异步并行ssh
项目描述
apssh
- 异步并行ssh
包含什么?
此工具利用Python异步范式,并提供
- 一个独立的
apssh
命令,用于在多个主机上并行执行远程命令,以及appull
和appush
命令以执行并行复制,这对于系统管理员在常规工作中可能很有用, - 一个API,可以与
asynciojob
的Scheduler
一起创建SshJob
对象,以对它们进行编排
。
请参阅http://apssh.readthedocs.io/以获取完整的文档包。
什么是nepi-ng
?
最初,这里提出的思想针对的是实验研究的需要,其中实验通常涉及运行以下任务:准备一组节点、初始化它们、运行一些bash脚本、收集结果,所有这些都有时间关系。
为此,两个库asynciojobs
和apssh
互补,提供了一种强大的编程环境,我们将其命名为nepi-ng
;其两部分因此是
asynciojobs
asynciojobs
是基于asyncio的作业的微观编排调度器 - 有关详细信息,请参阅此链接。这是处理时间关系的部分。
apssh
apssh
包含了一些类,允许您以 asynciojobs
的方式编写作业,这些作业实际上将在 ssh 上运行
SshNode
:描述如何访问节点(可能通过网关)SshJob
:用于运行一个或多个远程命令;这些中的每一个都可以Run
:该命令旨在在目标节点上运行 readily 可用的命令RunScript
:当您有一个要远程运行的本地脚本文件时,因此在运行之前需要将其推送到那里RunString
:同样的想法,但您甚至没有本地文件,它只是一个内存中的 python 字符串;这对于在 python 代码中嵌入 shell 代码很有用Pull
或Push
用于 SFTP 上的文件传输
正如其名称所暗示的
- 一个
SshNode
实例包含目标节点的详细信息(主机名、用户名、如果适用的话,网关等),并且可以将其视为一个 ssh 连接; SshJob
,适合作为asynciojobs
的作业运行,即在调度程序内部运行;- 一个
SshJob
实例包含要运行的实际命令列表,可以是远程执行和文件传输的混合体。
示例
您可以在两个文件中看到该想法的一个非常简单的实现
- python 代码
- 以及相关的 shell 脚本 angle-measure.sh
- 此外,此图中描绘了涉及到的对象摘要 jobs.png
另一个更简单的示例说明了如何利用 YAML 加载器,请参阅
- 在 <https://github.com/fit-r2lab/demos> 中的
my-first-nepi-ng-script
文件夹 - 特别是两个名为
demo-v1.py
和demo-v2.py
的版本,它们实现了完全相同的行为,但使用了- 纯 Python 方法(v1)
- YAML 加载器(v2)
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源分发
apssh-0.26.0.tar.gz (54.4 kB 查看哈希值)
构建分发
apssh-0.26.0-py3-none-any.whl (50.5 kB 查看哈希值)