千家信息网

如何使用Fabric实现自动化运维

发表于:2025-12-06 作者:千家信息网编辑
千家信息网最后更新 2025年12月06日,这篇文章主要介绍如何使用Fabric实现自动化运维,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!开始使用Fabric来实现几个简单的、重复性的操作,如登录服务器、执行命令和上传
千家信息网最后更新 2025年12月06日如何使用Fabric实现自动化运维

这篇文章主要介绍如何使用Fabric实现自动化运维,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

开始使用Fabric来实现几个简单的、重复性的操作,如登录服务器、执行命令和上传文件。

from fabric import Connection

import traceback

class FabricUtils:

def __init__(self, host:"服务器IP", userName:"用户名", password:"密码"):

self.host = host

self.userName = userName

self.password = password

print(self.userName + "@" + self.host, {"password": self.password})

#初始化ssh链接对象;

def initClient(self):

self.con = Connection(self.userName + "@" + self.host, connect_kwargs={"password": self.password})

#执行shell命令;

def runCommand(self, sshCommand:"Linux命令行语句"):

#top命令尚未测试通过;

#如果命令行中包含路径,最好使用绝对路径;

try:

result = self.con.run(sshCommand, hide=True)

if result.return_code == 0:# 返回码,0表示正确执行,1表示错误

return True, result.stdout

return result.failed, result.stdout

except:

exp = traceback.format_exc()

if "Command: 'mkdir" in exp and 'File exists' in exp:

print("目录【", sshCommand, "】已存在")

else:

print(exp)

return False, exp

#切换到某一目录

def cd(self, dir):

return self.con.cd(dir)

#上传文件

def put(self, src:"待上传的文件全路径。路径中最好不要有空格等特殊字符", org:"保存到服务器上的目录"):

return self.con.put(src, org)

if __name__ == '__main__':

fabricu = FabricUtils("服务器IP", "服务器登录用户名", "服务器登录密码")

fabricu.initClient()

print(fabricu.runCommand("tar -zxvf /home/Crawler/WeChatSouGouMain.tar.gz -C /home/Crawler/"))

上面代码尚存上下文无关的问题,如cd方法,执行后切换到某个目录下,但是如果再执行put方法上传文件。

如果org参数使用相对路径,则不是以切换后的目录为参照。如:

fabricu.cd("/home/crawler")

fabricu.runCommand("tar -zxvf /home/Crawler/WeChatSouGouMain.tar.gz -C ./")

执行完上述的两段代码以后,文件WeChatSouGouMain.tar.gz并不是上传到/home/crawler目录下,二十在当前用户的根目录下

以上是"如何使用Fabric实现自动化运维"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

服务器 目录 服务 命令 文件 路径 用户 切换 登录 自动化 代码 内容 密码 方法 最好 用户名 篇文章 特殊 上下 上下文 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术面试时谈谈优缺点 电脑游戏服务器异常怎么解决 软件开发过程的生命周期过程 在典型的软件开发中编写程序 使用dos登录数据库 株洲软件开发工程师培训课 锐思数据库中如何查询每股股利 滴滴网络安全工程师 车间排产软件开发 厦门专业的网络安全机构 广丰软件开发 MCAI软件开发线程图 租赁河南虚拟主机云服务器 数据库应用系统访问数据库 湖州网络技术服务 为什么拨打电话会出现不在服务器 变电站网络安全等级测评 酒店数据安全服务器 远程链接阿里云数据库 geo数据库如何做gsea分析 网络安全网络教育学习 当前主流的数据库是关系数据库 软件开发需要哪些研究方法 沪江+软件开发 以百度和知网数据库为例 容华网络技术 软件开发助理工程师做什么 电子网络安全班会目的 我的世界神奇宝贝服务器推荐QQ群手机 全国血小板基因数据库协作组
0