[实战]python开发自动化运维工具--批量操作主机

Posted 程序员技术前沿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[实战]python开发自动化运维工具--批量操作主机相关的知识,希望对你有一定的参考价值。

有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子。只不过,很多运维同学学习Python之后,苦于没小项目训练,本篇演示用Python写一个批量操作主机的工具,大家空余时候可以试着写写,完善完善。


1 思路分析

在运维工作中,古老的方式部署环境、上线代码可能都需要手动在服务器上敲命令,不胜其烦。所以,脚本,自动化工具等还是很有必要的。我觉得一个批量操作工具应该考虑以下几点:

(1)本质上,就是到远程主机上执行命令并返回结果。

(2)做到批量。也就是要并发对多台机器进行操作。

(3)将返回的结果,清晰地展示给用户。

通常开源的主机批量管理工具有两类,一类是有agent,如SaltStack、Puppet等;另一类是无agent如ansible。虽然我们没必要重复造轮子,但是可以试着写一写,一是加深对这类软件原理的理解,二是练习Python。建议如果服务器规模在1000台以内的用无agent的方式也能hold住;如果超过1000台,用有agent的会好太多。

接下来我们一起看看怎么具体实现。

2 到远程机器上执行命令

到远程机器上执行命令,并返回结果,至少有两种方式:一是用paramiko模块;而是可以建立机器互信,从中控执行ssh命令。

下面我把自己封装好的代码贴一下,是基于paramiko模块封装的,ssh的大家可以自己实现:

(c)2006-2024 SYSTEM All Rights Reserved IT常识