使用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获取beautifulphoto随机某图片代码实例
Dec 18 Python
python 队列详解及实例代码
Oct 18 Python
python自带的http模块详解
Nov 06 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
Python中常见的异常总结
Feb 20 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
python开发入门——列表生成式
Sep 03 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
Django xadmin安装及使用详解
Oct 26 Python
利用Python多线程实现图片下载器
Mar 25 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
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
Python3处理文件中每个词的方法
2015/05/22 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
养生餐厅创业计划书范文
2014/03/26 职场文书
合作意向书格式及范文
2014/03/31 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
体现团队精神的口号
2014/06/06 职场文书
在职证明范本
2015/06/15 职场文书
Ruby处理YAML和json数据
2022/04/18 Ruby