A. 如何做好python自动化运维
随着移动互联网的普及,服务器运维所面临的挑战也随之越来越大。当规模增长到一定程度,手动管理方式已经无法应对,自动化运维成为解决问题的银弹。Python凭借其灵活性,在自动化运维方面已经被广泛使用,能够大大提高运维效率,服务器集群的规模越大,优势越明显。现在不论是Linux运维工程师还是Unix运维工程师都需要掌握Python,以提高运维效率。
第一个阶段:初级,掌握Python的语法和一些常用库的使用
掌握一门语言最好的方法就是用它,所以我觉得边学语法边刷Leetcode是掌握Python最快的方式之一。
B. 网络工程师的Python之路---进阶篇
进阶篇(续)
本文是《网络工程师的Python之路---初级篇》的续作。在《初级篇》中,我们以GNS3模拟器为平台,通过实验形式讲解了Python在计算机网络运维中的应用,侧重于三层交换机上部分运用。《进阶篇》将从一位资深网络工程师的角度,结合实际工作中的案例与Python代码,深入探讨Python在大型网络运维(设备数量超过1000台)中的实战应用。《进阶篇》将包含更多《初级篇》中未涉及的Python模块与技巧,所有Python脚本均在真实设备上运行与演示。由于英文注释与代码打印,我会在讲解部分使用中文进行翻译与解释。
在撰写《进阶篇》时,我曾考虑详细讲解所有案例代码中的Python基础知识,但考虑到篇幅与效率,决定将重点放在网络运维脚本中常用到的Python知识上,而非进行全方位讲解。完成《进阶篇》后,我计划撰写一篇专门介绍Python基础知识的文章,内容侧重于网络运维脚本代码中常用的Python知识点。
随着Python编程技术和网络自动化技术的日益普及,网络工程师必须掌握Python以保持竞争力。CLI和GUI中的手动操作时代已经过去,Python脚本的自动化管理成为大型网络的强大工具。我希望这两篇文章能帮助更多同行快速掌握Python在网络运维中的应用,体会自动化管理的便利。
在《初级篇》中,运行Python代码的主机为Linux操作系统,有朋友提出希望了解Python在Windows中的应用。鉴于并非所有人都熟悉Linux,因此《进阶篇》将使用Windows主机进行案例和代码演示。此外,对于Ansible,由于作者目前仅入门Python,暂未接触该工具,未来学习使用后将另行撰写文章。
在我9年的海外从业经历中,我考取了CCIE(思科认证专家)并专注于思科IOS、IOS-XE、NX-OS、IOS-XR等设备与技术。此外,我接触过Arista数据中心解决方案、Juniper、Fortinet、Checkpoint、McAfee防火墙、Aruba(已被HPE收购)无线网络等产品。在新加坡、美国、沙特等知名外企、政府部门、银行和科技巨头公司担任过网络工程师、高级网络工程师及网络顾问等职务。在新加坡国家美术馆和新加坡国家艺术博物馆的网络项目中担任首席网络工程师,并在沙特阿卜杜拉国王科技大学担任高级网络工程师,负责学校网络架构、设计、技术管理和网络运维。
本文将介绍Python在大型网络运维中的实战应用,具体案例包括使用Python脚本在Windows主机上实现对1000台思科3750交换机的管理。首先,我们将安装Python和Paramiko,并介绍在Windows中运行Python脚本的方法。随后,我们将使用Python和Paramiko编写脚本,依次ping所有交换机的管理IP地址,确定当前可达的交换机,并统计每个交换机的终端物理端口数量以及网络中的端口使用率。
以下是案例1的具体步骤与代码实现:
安装Python和Paramiko:在Windows命令提示符中输入'pip install paramiko'即可完成安装。随后在Python环境中输入'import paramiko'以确保安装成功。
安装Sublime Text 3作为Python代码编辑器,并通过手动选择'View -> Syntax -> Python'来设置语法高亮、提示与自动补全等功能。
运行Python脚本的方式有三种:左键双击脚本、右键选择用IDLE编辑脚本并运行,或在命令行中输入"python xxx.py"。在使用左键双击运行时,可在代码末尾添加raw_input()以让窗口停留,展示运行结果。
案例1-脚本1:编写Python脚本以ping所有1000台思科3750交换机的管理IP地址,并将可达的交换机IP保存至文件。执行脚本后,文件中将记录可达交换机的IP地址。
案例1-脚本2:读取之前保存的可达IP地址文件,登录每个交换机并执行命令以查看物理端口状态,统计每个交换机的物理端口数量与网络端口使用率。
通过以上步骤,我们可以实现在不依赖任何网络管理软件或安全工具的情况下,利用Python脚本实现对大型网络的自动化管理与统计。
C. 网络工程师的Python之路 -- 思科IOS-XE设备巧用Linux命令
随着网络运维自动化技术的兴起,Python在思科CCIE EI考试中的应用日益普及。本文回顾了如何在思科IOS-XE设备中利用Python,以及介绍了一个鲜为人知的技巧:在IOS-XE设备上激活并输入Linux命令,以增强网络运维自动化。IOS-XE操作系统作为IOS的继任者,具有其独特之处。本文将详细讲解如何在设备中启用Linux Shell,以及如何利用常见的Linux命令和shell编程来提升网络运维效率。
在IOS-XE设备默认状态下,Linux Shell功能是关闭的。要启用它,只需在特权模式下输入“terminal shell”命令。值得注意的是,此功能并非永久开启,每次SSH登录设备时需要重新激活。若希望永久开启Linux Shell,需进行相应的配置,但需谨慎使用,因为这会占用设备的内存和CPU资源。
一旦激活Linux Shell,许多Linux命令如man、grep、nl和uname便能为网络运维工作提供便利。使用man手册命令可快速查阅Linux命令及其参数,如通过“man grep”来获取grep命令的相关信息。利用grep进行过滤操作,能实现比思科设备内常用的include、exclude、begin、section等基于正则表达式的命令更强大的功能。例如,通过grep结合多个条件过滤OSPF路由前缀。
借助nl命令,用户可在没有开启Linux Shell的情况下添加行号,以方便后续操作。在开启Linux Shell后,nl命令可以与grep结合使用,实现根据排数指定过滤回显内容的功能。例如,通过nl配合grep过滤出show version回显内容的特定排数。
uname命令在激活Linux Shell的IOS-XE中简化了查看设备型号的过程,只需执行即可获取设备型号信息,省去了使用show inventory命令的复杂步骤。此外,借助Linux命令wc,用户可以统计回显内容的字节数、换行符数、字母数、词汇数等信息,进一步优化运维操作。
对于Shell编程,用户在Linux Shell环境中同样可以实现代码编写。熟悉Shell编程的用户可以轻松创建变量、赋值、调用变量,利用for循环进行迭代操作,甚至定义函数来封装常用任务,这些操作在一定程度上能替代部分Python功能,提升运维自动化水平。
D. python自动化运维是做什么的
随着技术的进步、业务需求的快速增长,一个运维人员通常要管理上百、上千台服务器,运维工作也变得重复、繁杂。将运维工作自动化,能够把运维人员从服务器的管理时间中释放出来,让运维工作变得简单、快速、准确。
换句话来讲,运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,主要目的就是实现IT运维的质量,降低成本。
Python自动化运维能干什么?
1开发各种自动化工具,定制开发各种开源软件;
2帮助评估和优化业务技术架构;
3开发公司的内部办公系统CRM、网站等;
4成为全栈工程师。
为什么选择Python做自动化运维?
自动化运维关键问题:自动化、易实现、跨平台、轻量级,恰好这几点是Python的优势;
适合自动化运维编程语言的特点:丰富的第三方库、学习成本低、跨平台、轻量级,而Python就具备这样的优势。
总而言之,Python是非常适合自动化运维的编程语言。