使用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的Twisted框架实现一个简单的服务器
Apr 16 Python
解决python3中解压zip文件是文件名乱码的问题
Mar 22 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
python实现字符串完美拆分split()的方法
Jul 16 Python
使用keras根据层名称来初始化网络
May 21 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
python三引号如何输入
Jul 06 Python
面向新手解析python Beautiful Soup基本用法
Jul 11 Python
详解Python中的路径问题
Sep 02 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 Python
python实现简单聊天功能
Jul 07 Python
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 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文件中bom的PHP代码
2012/03/13 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
js 文件引入实现代码
2010/04/23 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
ES5新增数组的实现方法
2020/05/12 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
javascript实现左右缓动动画函数
2020/11/25 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
python 处理string到hex脚本的方法
2018/10/26 Python
python 标准差计算的实现(std)
2019/07/29 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
售后求职信范文
2014/03/15 职场文书
《水上飞机》教学反思
2014/04/10 职场文书
安全生产月活动总结
2014/05/04 职场文书
超市周年庆活动方案
2014/08/16 职场文书
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python