我有一堆Linux构建从属服务器,它们使用Python为每个构建运行自动化测试。每个python环境都需要安装一个特定的模块列表(一些模块也需要特定的版本)。我正在尝试编写一个python脚本,它将转到每台机器并检查是否安装了python包列表以及检查多个软件包的版本。我有这个工作在本地机器上,但寻找有关检查远程机器的最佳方法的建议。
作为参考,在本地机器上我正在试用/除了检查模块是否已安装
scanP1("rb_correctP1["+i+"]")
这是检查特定版本
pkg_resources.get_distribution(module)
有关为远程系统执行此操作的最佳方法的任何建议吗?
答案 0 :(得分:0)
您可以通过ssh运行任何shell命令:
$ ssh your_login@your_server which python
/usr/bin/python
这应足以检查远程服务器上安装的内容。
答案 1 :(得分:0)
进入机器后,pip freeze
和grep
应该可以查找模块是否已安装。
进一步阅读:http://blog.revathskumar.com/2011/10/python-list-all-packages-installed.html
对于SSHing,子进程库应该允许您运行这些命令。
答案 2 :(得分:0)
使用paramiko我创建了一个SSH连接 执行pip冻结 在返回的列表中搜索了我需要验证的包
答案 3 :(得分:0)
如果您使用compare-requirements安装软件包,则可能需要查看{{3}}软件包。
至于能够远程运行它,您应该能够通过SSH实现这一点,如AetherUnbound建议的那样