使用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中函数总结之装饰器闭包详解
Jun 12 Python
python 反向输出字符串的方法
Jul 16 Python
Django中的文件的上传的几种方式
Jul 23 Python
python如何实现一个刷网页小程序
Nov 27 Python
pip指定python位置安装软件包的方法
Jul 12 Python
Python 寻找局部最高点的实现
Dec 05 Python
pycharm sciview的图片另存为操作
Jun 01 Python
python能自学吗
Jun 18 Python
python为什么要安装到c盘
Jul 20 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
python中Django文件上传方法详解
Aug 05 Python
Python源码解析之List
May 21 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
php array_filter除去数组中的空字符元素
2020/06/21 PHP
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
python如何安装下载后的模块
2020/07/03 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
项目经理岗位职责
2013/11/11 职场文书
作风建设年度心得体会
2014/10/29 职场文书
师德师风个人总结
2015/02/06 职场文书
入党积极分子个人总结
2015/03/02 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS