使用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中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
python之pandas用法大全
Mar 13 Python
Python批量提取PDF文件中文本的脚本
Mar 14 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
Apr 18 Python
python 对key为时间的dict排序方法
Oct 17 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
基于Python模拟浏览器发送http请求
Nov 06 Python
python regex库实例用法总结
Jan 03 Python
Python中的 No Module named ***问题及解决
Jul 23 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
php跨域cookie共享使用方法
2014/02/20 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
react路由配置方式详解
2017/08/07 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
用python实现的线程池实例代码
2018/01/06 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
python递归下载文件夹下所有文件
2019/08/31 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
企业管理专业个人求职信范文
2013/09/24 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
就业推荐表院系意见
2015/06/05 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技