学习
实践
活动
工具
TVP
写文章

Fabric:Python远程部署工具

关于Fabric ---- Fabric是一个Python库和命令行工具,旨在为应用部署和系统管理任务的SSH的流水线式操作,使之更加高效和方便。 Fabric提供了一套基本的执行本地和远程shell命令、上传和下载文件的操作,包括一些辅助函数,例如驱动正在运行的用户输入或者放弃执行。 Fabric通过把大量频繁使用的SSH操作写入到一个脚本中(fabric.py),来远程执行一些应用部署或者系统维护的任务。 Fabric是类似paramiko的一个库,是对paramiko的再次封装,所以比使用paramiko更简单。 Fabric的优点: 1. 角色定义 2. 代码易读 3. 封装了本地、远程操作 4. run('uname -s')        执行远程命令 sudo('service httpd restart')    执行远程sudo,注意pty选项 2 任务函数 ---- Fabric中的任务就是一个个

54710

Fabric远程自动化

Fabric远程自动化 fabric是基于paramiko的ssh远程命令的再次封装,功能更强大 环境 python3.6 pip -V # pip3 安装部署 pip install fabric3 fabric常用函数 #切换远程目录,如cd('/var/logs') run #执行远程命令,如run('free -m') sudo #sudo方式执行远程命令,如sudo('/etc/init.d /httpd start') put #上次本地文件导远程主机,如put('/home/user.info','/data/user.info') get #从远程主机下载文件到本地 with settings(hide('warnings','running','stderr','stdout','everything',warn_only=True)): #指定输出内容,异常不操作

36330
  • 广告
    关闭

    腾讯云精选爆品盛惠抢购

    腾讯云精选爆款云服务器限时体验20元起,云数据库19.9元/年起,还有更多热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python fabric远程自动部署简介

    Python fabric远程自动部署简介 2.1. Hello,fab 1. 本地操作 执行本地操作命令使用local 1. fabfile.py脚本内容如下 1 from fabric.api import local 2 3 4 5 def test(): 6 远程操作 执行远程操作命令使用run 1. fabfile.py脚本内容如下 1 from fabric.api import cd,run,env,hosts 2 3 env.hosts=['192.168.85.99 多服务器混合,需要在不同服务器进行不同操作时,可参考如下脚本 1 from fabric.api import env,roles,run,execute 2 3 env.roledefs = { latest/index.html 2. http://wklken.me/posts/2013/03/25/python-tool-fabric.html

    15420

    Python远程部署利器Fabric详解-转载

    Fabric是一个Python的库,它提供了丰富的同SSH交互的接口,可以用来在本地或远程机器上自动化、流水化地执行Shell命令。因此它非常适合用来做应用的远程部署及系统维护。 执行远程命令 Fabric真正强大之处不是在执行本地命令,而是可以方便的执行远程机器上的Shell命令。 具体操作可参见我的这篇文章。 让我们介绍几个常用的: cd: 设置远程机器的当前工作目录 “cd()”方法在之前的范例中出现过,”with cd()”语句块可以用来设置远程机的工作目录: from fabric.api import 在开启”warn_only”后,你可以通过”failed”属性检查捕获错误,并执行相应的操作

    58210

    远程部署神器 Fabric,支持 Python3

    所以,如果你按照那些教程去操作的话根本跑不通。 如果你还没用过 Fabric,那么这篇文章就是帮你快速上手 Fabric 的。不管你现在用不用,先了解了以后也用得着。 你小心翼翼地登录到正式服务器,进入到项目目录中,把代码从远程仓库拉下来,然后启动程序。 后面每次有新功能发布或者哪怕只是修改了一个小小的 Bug 时,你都要执行重复的操作,登录服务器,切换到指定目录,拉取代码,重启服务。 其实这种操作非常繁琐,也没什么技术含量,还容易出问题,于是 Fabric 出场了。Fabric 是一个远程部署神器,它可以在本地执行远程服务器的命令。 怎么做?很简单,就几个步骤。 而新版 Fabric 提供的 API 非常简单。 运行命令 先看个例子,下面是一段部署脚本 # deploy.py # 1. 创建一个远程连接 # 2. 进入指定目录 # 3.

    1K40

    Saltstack 远程操作(Ⅱ)

    0 -rw-r----- 1 root root 0 11月 6 15:22 1212.txt drwxr-x--- 2 root root 21 11月 6 15:26 aaa 二、配置管理远程命令 其实远程命令模式咱们可以使用cmd.run但是批量要是执行很多个命令就不好运行了,就需要我们使用配置文件去执行! 这就证明我们没有远程连接过这个机器,这是第一次,解决方法:手动连接此机器: ssh root@192.168.59.138 //输入yes, 再次输入密码即可运行如上远程ssh。 当然,如果机器比较多肯定不好每台都这样操作,我们可以使用之前所学的去解决这个问题! :47 2.00s 0.57s 0.02s /usr/bin/python /usr/bin/salt-ssh --key-deploy * -r w 也许你会对如上的密钥好奇,当我完成如上操作按理来说应该可以直接

    39550

    Fabric 源码学习:如何实现批量管理远程服务器?

    前不久,我写了一篇《Fabric教程》,简单来说,它是一个用 Python 开发的轻量级的远程系统管理工具,在远程登录服务器、执行 Shell 命令、批量管理服务器、远程部署等场景中,十分好用。 Fabric 2 是其最新的大版本,跟早前的 Fabric 1 有挺大的不同,更加好用了,但是没填上的坑也挺多的…… 本文继续来聊聊 Fabric,不过我不想再面面俱到了,而是专注于这一个话题:它是如何实现对批量服务器的串行 (友情提示:为了有更好的阅读体验,如果你还不了解 Fabric 的基础用法,建议先阅读前面的教程。) Fabric 通过 Group 来组合多台服务器。 区别在于由 fabric.group.Group 基类(父类)派生出的两个子类: SerialGroup(*hosts, **kwargs):按串行方式执行操作 ThreadingGroup(*hosts , **kwargs):按并发方式执行操作 下面先看看这个基类: ?

    27840

    git远程操作仓库

    Git是一个开源的分布式版本控制系统,分布式相比集中式的最大区别是Git没有“中央服务器”,每位开发者都可以通过克隆(git clone)远程库,在本地机器上存储一个完整的Git仓库,还可以把代码的修改提交到本地库 当然了,本地库修改完成后也可以上传到远程仓库,操作方便。 在学习git的操作方法,总是偶然的上传成功。这次不一样了,向大家介绍每一步的操作流程和成功案例。 其他储存仓库操作步骤类似。

    18610

    Git远程操作详解

    Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 一、git clone 远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone命令。 $ git clone <版本库的网址> 比如,克隆jQuery的版本库。 $ git pull --rebase <远程主机名> <远程分支名>:<本地分支名> 如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。 这是为了防止,由于其他人操作远程主机,导致git pull不知不觉删除了本地分支。 但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。 如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

    35960

    git 远程仓库操作

    git 远程仓库操作 远程提交一个大一点的文件 解决提交冲突(拉取本地合并提交) 分支合并 idea配置操作git和github 远程提交一个大一点的文件 用git远程提交的一个好处就是,相比较在github (或者说是远程提交) 一种提交方式。其实命令还是比较多的。提交方式比较多,但是我感觉这样还是比较简单的。 git工具的人下载不必说了。我只是想记住一下这个远程操作。 需要注意的是,据说如果源库有分支的话,还需要进行合并分支的操作,不然可能会出错。 第一次创建仓库的话,如果想要远程简单提交一次文件的话,就最好创建一个空的库。这样提交的话,操作会比较简单。 如何给你的远程仓库创建一个分支呢?当前也可以直接在远程仓库手动创建。现在我们要用git工具进行操作。 如下,可以现在本地创建一个,然后给他推到远程仓库就完事。 自己比较习惯使用命令的话,也可以在terminal下面像之前一样进行操作

    7520

    如何高效地远程部署?自动化运维利器 Fabric 教程

    Fabric 1.x 版本中,它混杂了本地及远程两类功能;但自 Fabric 2.x 版本起,它分离出了独立的 Invoke 库,来处理本地的自动化任务,而 Fabric 则聚焦于远程与网络层面的任务 为了做到这点,Fabric 主要依赖另一大核心组件 Paramiko,它是基于 SSH 协议的远程控制模块,Fabric 在其基础上封装出了更加友好的接口,可以远程执行 Shell 命令、传输文件、批量操作服务器 2、一个简单的例子 Fabric 主要用于远程任务,即要对远程服务器进行操作,下面是一个简单的例子: # 可使用任意的文件名 from fabric import Connection host_ip 4、交互式操作 远程服务器上若有交互式提示,要求输入密码或“yes”之类的信息,这就要求 Fabric 能够监听并作出回应。 以下是一个简单示例。 由此,也可以方便地批量进行二次操作。 三、Fabric 的进阶用法 1、身份认证 Fabric 使用 SSH 协议来建立远程会话,它是一种相对安全的基于应用层的加密传输协议。

    64920

    hyperledger fabric fabric-samples 环境测试

    一、hyperledger fabric 基础环境搭建 一、下载fabric-samples、二进制文件、镜像文件 1、进入gopath目录下,创建目录src/github.com/hyperledger 3、执行bootstrap.sh下载fabric-samples、二进制文件、docker镜像,网络不好的同学耐心等待哈。 ? 二、运行fabric-samples下面的first-network,网络测试 1、cd first-network 2、先关闭网络,确保服务是关闭状态 ./byfn.sh down ? 设置FABRIC配置文件路径 export FABRIC_CFG_PATH=$PWD ? 生成创世区块 .. /channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto

    41920

    设置SSH + 远程仓库操作

    SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。 添加远程仓库 # 添加远程仓库 git remote add origin git@github.com:aliting/gittest1.git 语法: git remote add 仓库别名 远程仓库地址 #其他操作 git remote -v #查看关联的所有远程仓库. git remote show origin # 关联远程仓库后, 本地分支和远程分支的对应关系. git remote remove 远程仓库别名 # 删除关联仓库 git remote rename 远程仓库别名 新远程仓库别名 # 更换关联的远程仓库别名 将本地仓库分支上的内容推送到远程仓库的分支上. Ps 要保证在推送到远程仓库时有指定权限,以及版本与远程仓库保持一致 3.2从远程仓库上拉取 将远程仓库内容拉取并合并到本地分支. # 将远程仓库分支上的内容拉取到本地仓库的一个远程分支中. git fetch

    39220

    【干货】Git远程操作详解

    Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 一、git clone ---- 远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone命令。 $ git pull --rebase <远程主机名> <远程分支名>:<本地分支名> 如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。 这是为了防止,由于其他人操作远程主机,导致git pull不知不觉删除了本地分支。 但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。 如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

    30850

    【干货】Git远程操作详解

    Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 一、git clone ---- 远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone命令。 这是为了防止,由于其他人操作远程主机,导致git pull不知不觉删除了本地分支。 但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。 如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。 $ git push origin --tags ---- 原文地址:阮一峰的网络日志 - Git远程操作详解1

    26850

    Git远程操作1

    腾讯工蜂Git:基于Git的企业级协作开发解决方案,腾讯未来研发关键系统 https://code.tencent.com 远程库是团队合作协作的基础,在工蜂上创建远程库并关联本地仓库,步骤如下: https://code.tencent.com/help/productionDoc/profile#ssh 1、在工蜂上创建新项目(目前提供免费的项目库) 1.jpg 2.jpg 2、在本地仓库关联工蜂远程库 git remote add origin +仓库路径 如 git remote add origin git@git.code.tencent.com:123456/yuanchengku.git 注:操作时请输入自己的仓库路径 3、推送本地仓库到远程仓库 执行推送命令 git push -u origin master #将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用

    91240

    Git中的远程操作

    Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 git clone git remote git fetch git pull git push 一、git clone 远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone $ git pull --rebase <远程主机名> <远程分支名>:<本地分支名> 如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。 这是为了防止,由于其他人操作远程主机,导致git pull不知不觉删除了本地分支。 但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。 如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

    24220

    Git远程操作2

    腾讯工蜂Git:基于Git的企业级协作开发解决方案,腾讯未来研发关键系统 https://code.tencent.com 上篇讲述了推送本地仓库到远程库的操作,本篇则讲解如何从远程库同步代码到本地 此处的同步分为以下几种情况: 1、克隆远程库代码 git clone + 远程库路径 如git clone git@git.code.tencent.com:XXX/XXX.git 2、 同步远端分支变化 git fetch origin <branchname> #从远程的origin仓库的<branchname>分支下载代码到本地的origin/master,并不会合并 git diff <branchname >差异 git merge <branchname> #合并<branchname>分支到当前分支 git fetch #拉取所有分支的变化 git fetch -p #拉取所有分支的变化,并且将远程库中不存在的分支同步移除 3、同步远端代码变化 git pull origin <branchname> #git pull的操作等于fetch + merge,出现冲突再手动解决 *略过了查看差异直接合并,相较于git

    42930

    Hyperledger Fabric

    Docker和Docker Compose 你需要将以下安装在你将要操作或开发Hyperledger Fabric的平台上: MacOSX,*nix,或Windows 10:Docker - Docker 默认情况下,Ubuntu 16.04自带Python 3.5.1作为python3二进制版本安装,Fabric Node.js SDK需要Python 2.7的迭代才能成功完成npm install操作 然而,经验表明这是一个功能有限的开发环境,它适用于运行基于Docker的场景,例如入门,但是你可能对涉及make和docker命令的操作有困难。 完成此操作后,还应该使用以下命令安装NPM GRPC模块: npm install --global grpc 你的环境现在应该已经准备好进行入门示例和教程了。 Hyperledger Fabric的功能和操作非常有用。

    64330

    扫码关注腾讯云开发者

    领取腾讯云代金券