使用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 相关文章推荐
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
Jun 13 Python
Python内置函数delattr的具体用法
Nov 23 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
Python Web版语音合成实例详解
Jul 16 Python
PyTorch的SoftMax交叉熵损失和梯度用法
Jan 15 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
Python itertools.product方法代码实例
Mar 27 Python
python with语句的原理与用法详解
Mar 30 Python
Python如何使用input函数获取输入
Aug 06 Python
python 使用tkinter+you-get实现视频下载器
Nov 17 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
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
Python实现提取文章摘要的方法
2015/04/21 Python
python脚本替换指定行实现步骤
2017/07/11 Python
利用python画出折线图
2018/07/26 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
python3实现猜数字游戏
2020/12/07 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
校运会广播稿100字
2014/01/27 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
元旦促销方案
2014/03/15 职场文书
个人委托书范本
2014/09/13 职场文书
公司授权委托书范本
2014/09/18 职场文书
法定代表人授权委托书
2014/09/19 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python