使用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中日期和时间格式化输出的方法小结
Mar 19 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
Python调用C++程序的方法详解
Jan 24 Python
python3+PyQt5实现拖放功能
Apr 24 Python
Python中的 enum 模块源码详析
Jan 09 Python
python面试题之列表声明实例分析
Jul 08 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
Python中格式化字符串的四种实现
May 26 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 Python
手残删除python之后的补救方法
Jun 26 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中curl_multi的应用
2013/07/17 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
Python中的进程分支fork和exec详解
2015/04/11 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
python实现五子棋游戏
2019/06/18 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
保护环境建议书
2014/03/12 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
公司股份合作协议书
2014/12/07 职场文书
秋季运动会开幕词
2015/01/28 职场文书
发布会邀请函
2015/01/31 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
python字典的元素访问实例详解
2021/07/21 Python