2018 Python 计算生态九月推荐榜
18年9月10日 · 计算生态推荐榜 5751 人阅读
看见更大的世界,遇见更好的自己
See a better world to meet better for ourselves.
DevOps 是开发(Development)和运维(Operations)的组合,这个新词开辟了从开发到运维无缝对接的交付文化,更开启了全面自动化运维的新阶段。当然,理想是美好的,现实也略微骨感,好在有一批 Python 工具为自动运维提供了必要保障,这其中既有一批Python标准库及第三方库,还有一批由 Python 实现的集成化工具。运维无小事,细节很重要!面对多样的运维需求,小功能能够发挥大作用,快来亲自动手体会这些工具的精髓吧!
2018 年 9 月,受 DevOps 感召,体会运维网站之辛苦,自动化运维之必然,好事者特别推荐10款相当优秀的 Python 工具帮助大家快速搞定自动运维需求,学习之、熟练之、精进之,从此以后,一同期待简单动手、轻松受益、工资快涨,当然,先学好 Python,这是基础!
Click
Click 是一个能够简单有效创建命令行的 Python 第三方库,它致力于让程序命令行设计更加快速和有趣。该项目是成功的,使用 Click 可以分分钟搞出一个漂亮且专业的命令行设计,让脚本程序瞬间高大上,充满 Linux 的专业范儿!
项目主页:https://github.com/pallets/click
prompt_toolkit
顾名思义,prompt_toolkit 是用来产生交互式提示请求的工具集,它主要用于替换 GNU 的 readline 函数。它采用纯 Python 编写,支持多种操作系统,交互界面十分友好,非常适合作为自动运维中获取用户交互信息的 Python 第三方库使用。创建一个交互式环境只需要几行代码,如此简单。
项目主页:https://github.com/jonathanslenders/python-prompt-toolkit
ptpython
ptpython 是一个高级的 Python 交互式窗口(即REPL,Read-Eval-Print Loop),简单理解,ptpython 是一个 Python 语言交互式环境,用户可以输入一条命令,获得相应输出结果。相比 Python 解释器自带交互式环境IDLE,ptpython 更加清晰和友好,更适合自动化运维的需求。
项目主页:https://github.com/jonathanslenders/ptpython/
psutil
psutil(process and system utilities)是一个获取进程及系统性能信息的 Python 第三方库,它可工作在多种操作系统平台,能够监控 CPU、内存、磁盘、网络、传感器、外设、进程等多种资源,并提供了一批类 Unix 维护命令。如果说它是最好的系统监控 Python 库,应该没人会有异议。
项目主页:https://github.com/giampaolo/psutil
smtplib
自动发送提醒邮件是系统自动化运维的重要输出方式之一,Python 标准库 smtplib 正提供了该功能。SMTP 是一种简单邮件传输协议(RFC 821),smtplib 是其 Python 实现版本,提供了发送邮件客户端功能。任何的自动运维系统都需要 smtplib 类似功能,不仅如此,编写程序自动发送邮件也非常酷!
项目主页:https://docs.python.org/3/library/smtplib.html
Ansible
Ansible 是大名鼎鼎的IT运维系统,它完全由 Python 编写,集成了大量 Python 第三方库,形成了一个强大完整的运维工具。涉及到云计算的自动化运维需求基本都会考虑用 Ansible,在 DevOps 江湖中,其老大地位无人能及!不多说了,查文档开始学起来吧。
scapy
scapy 是一个强大的交互式网络探测和处理工具,它能实现解析多种协议网络包、捕获网络包、匹配网络包、发送伪造网络包、路由检测等多种功能。Scapy 强大到没对手,可以当作第三方库使用,也可以当做独立工具使用,涉及网络处理,只要想起这个名字,足矣!
项目主页:https://scapy.net/
difflib
difflib 是一个用于比较文件差别的 Python 标准库,能够将差别信息以 HTML 等多种格式输出,非常适合替代传统 Linux 的 diff 指令提供运维功能。difflib 与标准库 filecmp 搭配使用效果更佳,后者可以对文件或目录进行初步比较,而前者进一步进行细致对比。自动化运维的起步是文件比较,这两个库请牢记!
项目主页:https://docs.python.org/3/library/difflib.html
pexpect
pexpert 是 expert 的 Python 版本,用来控制进程的创建、输入和响应等操作,在运维中,它可以实现 ssh、ftp、passwd、telnet 等各种运维命令的自动交互,实现多命令的自动化组织和处理。Pexpert 主要工作在 Linux 操作系统上,同时也支持 Windows 系统。对于稍微复杂的自动化运维需求,pexpert 是必选项。
项目主页:https://pexpect.readthedocs.io/en/stable/
Paramiko
Paramiko 是一个实现 SSH2 远程安全连接的 Python 第三方库,支持认证及密钥方式,可以实现远程命令执行、文件传输、SSH 代理等功能。Paramiko 基于 Python 编写,兼容 OpenSSH 实现。SSH 远程连接在运维中的基础性和重要性毋庸置疑,Paramiko 的价值也无需再言,掌握之就是了!
Python3Turtle