English 服务热线: 400-610-7333

浅谈 Python 在运维中应用 2022-08-05 10:15  作者或来源:上海天正

在运维早期, 服务器体量小, 部署步骤少、操作简单、对运维人员要求较低,而随着互联网行业飞速发展,服务器体量变大、部署步骤增多、操作变得繁琐、手工操作易发生操作风险且效率低,运维人力成本变高,体量大 (1000+) 的服务器难以人工管理,以前的手工运维就已经难以招架了,这时自动化运维就开始相应响应行业的需求,开始飞速发展!

直至今日,自动化运维体系已经成熟完善,例如:

支持混合云的配置管理数据库(CMDB)。CMDB 存储与管理企业 IT 架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相连,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。

完备的监控和应用性能分析系统。资源监控(如服务器、磁盘、网络)和性能监控(如中间件、数据库)都是较为基础的监控,开源工具有 ZabbixNagiosOpenFalcon(国产)。

批量运维工具。开源的批量运维工具有 AnsibleSaltStackPuppetChef,其中 Ansible SaltStack 纯由 Python 编写,代码质量和社区活跃程度都很高,推荐使用。

日志分析工具。如何快速地从成百上千台服务中采集日志并分析出问题所在呢?日志采集方面工具有 Sentry + 日志分析有 ELK,两者都是开源的。

持续集成和版本控制工具。持续集成是一种软件实践,团队成员经常集成他们的工作,每次集成都通过自动化的构建来验证,从而尽早发现集成错误。持续集成的工具 Jenkins+ 版本控制是软件 Git

漏洞扫描工具。借助商业的漏洞扫描工具扫描漏洞,保护服务器资源不受外界的攻击。

python 与运维有啥关系呢?

大部分的开源运维工具都是由纯 Python 编写的,如 CeleryansibleParamikoairflow 等,学 习 Python 后可以更加顺畅地使用这些开源工具提供的 API,可以阅读这些开源工具的源代码,甚至可以修改源代码以满足个性化的运维需求;

● Python 与其他语言相比,更加优雅、明确和简单。

示例:paramiko 使用

paramiko 模块是基于 python 实现了 SSH2 远程安全连接,支持认证和密钥方式,可以实现远程连接、命令执行、文件传输、中间 SSH 代理功能

安装 paramiko

需要下载 python3,安装方式可在网上查阅资料

pip3 install paramiko

# -*- coding: UTF-8 -*-

# This is a test about paramiko

# 实例化一个transport对象

import paramiko

ip = input("请输入需要远程的主机IP地址:")

uname = input("请输入登录用户名:")

pword = input("请输入登录密码:")

# 建立一个sshclient对象

ssh = paramiko.SSHClient()

# 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 调用connect方法连接服务器

ssh.connect(hostname=ip,port=22,username=uname,password=pword)

# 手动输入待执行命令

mycmd = input("请输入需要执行的命令:")

stdin,stdout,stderr = ssh.exec_command(mycmd)

# 直接执行指定命令

ssh.exec_command('cd /tmp/ && touch paramiko.txt && echo "hello 少年" > paramiko.txt')

# 结果放到stdout中,如果有错误将放到stderr

print(stdout.read().decode())

print(stderr.read().decode())

# 关闭连接

ssh.close()

验证结果:

 

服务热线:400-610-7333 | 邮箱:service@gpos.cn | 电话:8610-82564561/71 | 传真:8610-82564561-8025 | 京ICP备18017976号 | 京公网安备 11010802036102号 Copyright © 2005-2024 Beijing Golden Point Outsourcing Service Co., Ltd. All Rights Reserved. | 北京金支点技术服务有限公司保留所有权利。