首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux中的远程自动化工具

Linux中的远程自动化工具
EN

Unix & Linux用户
提问于 2020-09-11 13:59:41
回答 1查看 95关注 0票数 -1

假设在linux中有一个计算环境,它是静态的和持久的。我有单向的ssh连接,基础设施是可信的--这是我的。

有各种各样的品牌“企业”工具,如ansible,这些工具都带有预先装好的例程。最终,如果一个人想要修改他们,他们是一个痛苦。

接下来,您有了气流(dags)和Luigis ( python中的gnu- make克隆;python是一种比make和bash更低的语言,与make不同,它不支持应用程序二进制接口)。从某种意义上说,这是一种痛苦,因为我们必须为高级别任务编写低级代码(python已经成为一种带有类型问题和版本控制问题的低级语言),您必须处理python行李(虚拟env/anaconda/跨平台互操作)才能使用任何东西。

围绕这些“产品”、方案和工具,都存在本地unix/linux操作系统和“仅仅工作”的停靠映像。

在这些对接映像和子系统(用于linux的windows子系统)中,您拥有所有这些“只起作用”的工具,包括50年前的项目"Make“和zsh/bash以及parallelssh

实际上,make是完全通用的,当我想写一些快速自动化的时候,它比我在luigi/airflow中所能做的任何事情都快得多,比如说一到两周。它也是识别新工具的一种方式:如果某件事情变得过于复杂,显然它应该是一个低级语言中的打包工具。

此外,我不需要在不同的linux发行版和窗口之间拖曳python堆的依赖项,这会带来任何固定的成本。

然而,似乎还缺少一块瓷砖:make的有效性在我想要自动化运行在远程框上的任务的那一刻就减弱了。我试过ssh -c "...",但最终还是有点杂乱无章。

在寻找解决办法的过程中,我遇到了pachyderm (数据科学数据版本控制)、luigi (make克隆)、airflow (不好玩)、ansible (同样是: tinkery python--基于时间接收器),也许还有其他的。

我还遇到了20世纪80/90年代的一个叫做expectautoexpect的工具。这个工具似乎是linux的原生工具,属于windows子系统中用于linux、cygwin、我的远程linux机器等的“公正工作”类别。

它似乎符合要求,更好的是,它与我的make-style自动化方法很好地配合。一般来说,我完全可以接受automation.exp脚本内部的噪音,因为它们是自动生成的。重要的是,人工创建的组件--小components.exp --没有杂乱无章地连接在一起(所有的流程控制、配置、用户登录、文档以及与新时代工具相关的安装行李)。

然而,autoexpect是一个宏记录器,您可能需要使用它做的很多事情都涉及来自远程机器的不确定的响应。这是一个问题,除非你花时间成为expect专家。

抛开所有的序言,我很好奇:在这些系统中,除了autoexpect之外,还有其他的选择也属于“公正”的工作范畴吗?

而且,为了限制显而易见的事实,不要去寻找我的自动化系统来要求我在机器周围移动来安装和维护python虚拟环境--厌倦了处理这种混乱。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-09-12 22:01:03

对于远程执行,您可能需要查看env_parallel

代码语言:javascript
复制
dostuff() {
  mystuff "$@"
}
alias mystuff='echo $my'
my=My
env_parallel -S server dostuff ::: a b c

这里的想法是让GNU并行地将环境复制到远程服务器。这样,就可以更容易地在本地服务器上定义复杂的函数并让它们远程运行,而不必处理您可能使用ssh -c "..."的引用马戏团。

目前还不清楚是否需要expect的交互性。如果是这样,这将不能满足您的需要。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/608977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档