http://fabric-chs.readthedocs.io/zh_CN/chs/api/core/context_managers.html?highlight=with%20settings#fabric.context_managers.settings  官网的settings介绍

 
1:settings的两个功能
1):最有效的,它允许使用任何提供的关键字和参数临时的覆盖或更改变量,若有需要的话,将会在with块
关闭之后,恢复回原来的
2):可以使用它的参数做一些设定,比如hide,show之类的
 
实例1:
settings里的clean_revert=True的用法
#encoding=utf8
#!/usr/bin/python from fabric.context_managers import settings,hide
from fabric.api import run,env def s():
print("with块之前的:%s " % env.host_string)
with settings(paraller=True,host_string='myhost'):
print("host_string: %s" % env.host_string)
env.host_string = "otherhost"
print("host_string: %s" % env.host_string) print("退出with块之后:%s " % env.host_string) def a():
print("with块之前的:%s " % env.host_string)
with settings(paraller=True,host_string='myhost',clean_revert=True):
print("host_string: %s" % env.host_string)
env.host_string = "otherhost"
print("host_string: %s" % env.host_string) print("退出with块之后:%s " % env.host_string)
 
 
执行结果:
clean_revert不设置的话,为下
 

 
clean_revert设置为true的话,执行结果如下:

 
clean_revert=True的作用是,当退出with块的时候,设置的变量将不会还原回with之前的
实例二:
#encoding=utf8
#!/usr/bin/python from fabric.context_managers import settings,hide
from fabric.api import run,env def my_task():
with settings(hide('warnings','running','stdout','stderr'),warn_only=True):
run('ls /etc/redhat-release') if run('ls /etc/lsb-release'):
return "Ubuntu"
elif run('ls /etc/redhat-release'):
return 'redhat'
 
执行结果为下:不管是否正确,他都什么信息都不会输出,因为hide('warnings','running','stdout','stderr'),warn_only=True
hide隐藏指定的信息,warn_only=True将错误转换为警告,遇到错误不终止,而是变成警告

 
 
可以一个一个注释的去看结果,若将warn_only=True去掉,结果如下:

 
 
 

Fabric的settings用法的更多相关文章

  1. C# Setting.settings . 用法 2 使用配置文件(.settings、.config)存储应用程序配置

    引言 我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置.这样每次都要建立单独的配置类,并书写读写配置 ...

  2. C# Setting.settings . 用法

    1.定义 在Settings.settings文件中定义配置字段.把作用范围定义为:User则运行时可更改,Applicatiion则运行时不可更改.可以使用数据网格视图,很方便: 2.读取配置值 t ...

  3. Python2.7 fabric理论学习

    在python中有一个可以实现批量管理服务器的工具:fabric,在本地和远程机器上提供了一些基本的操作,并且可以上传/下载文件.执行sudo等功能. 学习环境:ubuntu 12.10+python ...

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

    关于 Python 自动化的话题,在上一篇文章中,我介绍了 Invoke 库,它是 Fabric 的最重要组件之一.Fabric 也是一个被广泛应用的自动化工具库,是不得不提的自动化运维利器,所以,本 ...

  5. 自动化运维利器 Fabric

    Fabric 主要用在应用部署与系统管理等任务的自动化,简单轻量级,提供有丰富的 SSH 扩展接口.在 Fabric 1.x 版本中,它混杂了本地及远程两类功能:但自 Fabric 2.x 版本起,它 ...

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

    前不久,我写了一篇<Fabric教程>,简单来说,它是一个用 Python 开发的轻量级的远程系统管理工具,在远程登录服务器.执行 Shell 命令.批量管理服务器.远程部署等场景中,十分 ...

  7. jQuery.ajax() 函数详解

    jQuery.ajax()函数用于通过后台HTTP请求加载远程数据. jQuery.ajax()函数是jQuery封装的AJAX技术实现,通过该函数,我们无需刷新当前页面即可获取远程服务器上的数据. ...

  8. jquery.ajax()详解

    jQuery.ajax() 函数详解 traditional 如果你希望使用传统方式来序列化参数,将该属性设为true. 传递数组时, traditional必须为true var arr = []; ...

  9. Crashlytics功能集成

    总共分三步: 1. 将Crashlytics.framework和Fabric.framework拷贝到工程中: 2.配置工程的info.plist文件,如下: APIKey和Build secret ...

随机推荐

  1. HBase和MongoDB的区别

    Mongodb用于存储非结构化数据,尤其擅长存储json格式的数据.存储的量大概在10亿级别,再往上性能就下降了,除非另外分库.Hbase是架构在hdfs上的列式存储,擅长rowkey的快速查询,但模 ...

  2. python+selenium,实现带有验证码的自动化登录功能

    python+selenium的环境准备,请自行安装完成,这里直接贴代码,方便做项目时直接使用. import time from selenium import webdriver from PIL ...

  3. Vue 兼容 IE9 全功能正常使用的全面解决方案

    https://blog.csdn.net/VhWfR2u02Q/article/details/80863626

  4. Spring AOP @Before @Around @After 等 advice 的执行顺序

    用过spring框架进行开发的人,多多少少会使用过它的AOP功能,都知道有@Before.@Around和@After等advice.最近,为了实现项目中的输出日志和权限控制这两个需求,我也使用到了A ...

  5. 不正常退出vim产生swp文件的解决方法

    vi -r README.txt恢复文件,这样上次意外退出没有保存的修改,就会覆盖文件. vi -r查看生成的交换文件 rm .README.txt.swp删除交换文件 搞定!下次打开文件就可以正常编 ...

  6. hdoj4685

    数据: /*999993 43 1 2 42 2 32 3 4*/ #include <iostream> #include <cstdio> #include <cma ...

  7. js 把一个对象赋值给另一个对象会指向同一个内存地址

    先看一段代码: var arr1 = [1,2,3]; var arr2 = arr1; arr2.push(4); console.log(arr1)//[1,2,3,4] 为什么会输出 的是[1, ...

  8. VNC错误修复⽅方法

    VNC错误修复方法 VNC错误描述 vnc viewer开启后弹窗提示 Could not connect to session bus: Failed to connect to socket /t ...

  9. 使用mint-ui中弹框组件与原生弹框阻止父页面不滑动方法

    1,使用mint-ui框架中<mt-popup></mt-popup>,在组件中加入 lockScroll="true" 阻止父页面不滑动. 2,原生弹框中 ...

  10. Oracle单机Rman笔记[0]---环境准备

    A. 安装操作系统rhel6.6,关闭防火墙,修改网卡配置IP(略)PS:1.默认分区选项(第二项,默认为LVM),然后进行调整2.安装类型选择“桌面”3.安装后 分配IP.调整防火墙.测试SSH B ...