使用python Fabric动态修改远程机器hosts的方法


Posted in Python onOctober 26, 2018

一、关于fabric

fabric是一个很强大的包,可以将多机操作、部署的命令固化到脚本里面,

详情可参考文档 http://fabric-chs.readthedocs.io/zh_CN/chs/

二、修改远程hosts的方法

如何修改远程服务器的hosts,想到两个办法:

第一个想到的办法就是通过命令连接上服务器,然后使用编辑器vim或者其它打开hosts文件,进行编辑;这种办法有个明显的缺点就是脚本操作比较复杂,需要在脚本里面使用编辑器进行操作,同时还需要动态解析已有的hosts,进行hosts合并。

第二个办法就是采用文件替换的方式,在本地进行编辑hosts,编辑好之后,上传到服务器,替换已有的hosts文件;这个方法操作简单,脚本执行起来也不复杂,可行性要高很多,当然也有个缺点,就是添加hosts的时候,需要操作者本身对已有hosts非常清楚。

三、源码

# encoding=utf-8
from fabric.api import *
 
# 这里配置了hosts信息
env.hosts = ['10.13.131.46', '10.13.135.121', '10.13.133.232']
env.password = "xxxxxxxxxxxxx"
env.user = "xiuzhu"
env.port = 10022
 
@task
def flush():
 sudo('cp /etc/hosts /home/xiuzhu/hosts.bak')
 put("host1", "/home/xiuzhu/hosts.new")
 sudo("mv /etc/hosts /etc/hosts.bak")
 sudo("mv /home/xiuzhu/hosts.new /etc/hosts")

以上这篇使用python Fabric动态修改远程机器hosts的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
解决谷歌搜索技术文章时打不开网页问题的python脚本
Feb 10 Python
跟老齐学Python之玩转字符串(2)更新篇
Sep 28 Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
浅谈Python处理PDF的方法
Nov 10 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
python如何创建TCP服务端和客户端
Aug 26 Python
Python shelve模块实现解析
Aug 28 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 Python
用python实现监控视频人数统计
May 21 Python
python数字图像处理之对比度与亮度调整示例
Jun 28 Python
python 处理string到hex脚本的方法
Oct 26 #Python
python3 unicode列表转换为中文的实例
Oct 26 #Python
Python3编码问题 Unicode utf-8 bytes互转方法
Oct 26 #Python
Python之两种模式的生产者消费者模型详解
Oct 26 #Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 #Python
Python批处理更改文件名os.rename的方法
Oct 26 #Python
浅谈django rest jwt vue 跨域问题
Oct 26 #Python
You might like
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
php中使用url传递数组的方法
2015/02/11 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
Python设计模式之观察者模式实例
2014/04/26 Python
python正则中最短匹配实现代码
2018/01/16 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
实践Vim配置python开发环境
2018/07/02 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
Django-migrate报错问题解决方案
2020/04/21 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
求职信范文大全
2014/05/26 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
营销团队口号
2014/06/06 职场文书
世界地球日活动总结
2015/02/09 职场文书
原告代理词范文
2015/05/25 职场文书
实践论读书笔记
2015/06/29 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python