跳转到主要内容

异步并行ssh

项目描述

apssh - 异步并行ssh

包含什么?

此工具利用Python异步范式,并提供

  • 一个独立的apssh命令,用于在多个主机上并行执行远程命令,以及appullappush命令以执行并行复制,这对于系统管理员在常规工作中可能很有用,
  • 一个API,可以与asynciojobScheduler一起创建SshJob对象,以对它们进行编排

请参阅http://apssh.readthedocs.io/以获取完整的文档包。

什么是nepi-ng

最初,这里提出的思想针对的是实验研究的需要,其中实验通常涉及运行以下任务:准备一组节点、初始化它们、运行一些bash脚本、收集结果,所有这些都有时间关系。

为此,两个库asynciojobsapssh互补,提供了一种强大的编程环境,我们将其命名为nepi-ng;其两部分因此是

asynciojobs

asynciojobs是基于asyncio的作业的微观编排调度器 - 有关详细信息,请参阅此链接。这是处理时间关系的部分。

apssh

apssh 包含了一些类,允许您以 asynciojobs 的方式编写作业,这些作业实际上将在 ssh 上运行

  • SshNode:描述如何访问节点(可能通过网关)
  • SshJob:用于运行一个或多个远程命令;这些中的每一个都可以
    • Run:该命令旨在在目标节点上运行 readily 可用的命令
    • RunScript:当您有一个要远程运行的本地脚本文件时,因此在运行之前需要将其推送到那里
    • RunString:同样的想法,但您甚至没有本地文件,它只是一个内存中的 python 字符串;这对于在 python 代码中嵌入 shell 代码很有用
    • PullPush 用于 SFTP 上的文件传输

正如其名称所暗示的

  • 一个 SshNode 实例包含目标节点的详细信息(主机名、用户名、如果适用的话,网关等),并且可以将其视为一个 ssh 连接;
  • SshJob,适合作为 asynciojobs 的作业运行,即在调度程序内部运行;
  • 一个 SshJob 实例包含要运行的实际命令列表,可以是远程执行和文件传输的混合体。

示例

您可以在两个文件中看到该想法的一个非常简单的实现

另一个更简单的示例说明了如何利用 YAML 加载器,请参阅

项目详情


下载文件

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

源分发

apssh-0.26.0.tar.gz (54.4 kB 查看哈希值)

上传时间

构建分发

apssh-0.26.0-py3-none-any.whl (50.5 kB 查看哈希值)

上传时间 Python 3

由以下支持