将自定义命令行工具分发到企业服务器

将自定义命令行工具分发到企业服务器

我的任务是构建一个命令行工具,我们将向企业客户提供该工具,以便他们可以使用 API 将数据上传到我们的平台。该 API 适用于标准 cURL 请求,因此我可以使用简单的 bash 脚本实现大部分基本功能,但我希望提供可靠的工具,真正让他们轻松使用,我不知道我不知道什么。我已经有 8 年没有真正做过任何严肃的系统管理员工作了。

我目前使用的大多数好工具都是用 Ruby 或 Python 编写的,并且具有标准的分发流程(例如 Gems)。但是,我知道 rhel 和其他平台都有自己的包管理器。

最后的问题是:在当今时代,我应该考虑哪种语言/分发方法才能覆盖最广泛的平台,而不必为每个平台构建完全不同的版本?

我还希望您能提供关于构建类似项目的任何一般反馈,或者您认为现在做得很好并且有我可以阅读的开源代码的项目链接。

提前致谢!

答案1

嗯,你的问题很广泛,但我过去一年一直在用 Python 编写系统管理工具。既然你要求一般反馈,以下是我遇到的一些问题。

您可以使用urllib2用纯 Python 代码编写curl请求。如果你只需要一些基本的 REST 请求,你可以看看要求或任何其他 python REST 客户端。

如果你需要支持 rhel 5(就像我一样),你将无法使用 python > 2.4 中的任何内容

对于分发:您可以使用安装工具 您需要做的就是创建一个setup.py脚本,告诉 setuptools 如何进行安装。然后您可以将 tarball 上传到皮皮

此后,您的客户可以使用以下命令安装您的工具:

easy_install toolname

或者

pip toolname

easy_install 或 pip 将从 pypi 下载 tarball,并执行setup.py脚本中的指令。

或者,如果您想分发到企业服务器,您现在也可以非常容易创建 rpm

python setup.py bdist_rpm

这将使用你的 setup.py 并从中创建一个 rpm,对于 .deb 也应该可以做到(带有一些额外的 bdist 插件)

我在根特大学工作,我们开源了一些我们编写的 Python 工具/库,例如,你可能会从解析命令行参数开始,我们已经编写了通用选项.py它扩展了基本的python 2.4 optionparser,并为其提供了几个很酷的新选项。(例如,允许您默认使用环境变量覆盖任何命令行选项)还有一个扩展的记录器,称为fancylogger.py

您可以浏览该存储库,查看一些可能有助于在 Python 2.4 下编写系统管理脚本的其他内容

相关内容