使用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列表list数组array用法实例解析
Oct 28 Python
Python标准库之循环器(itertools)介绍
Nov 25 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
python 自动批量打开网页的示例
Feb 21 Python
使用python实现mqtt的发布和订阅
May 05 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
python和js交互调用的方法
Jun 23 Python
Python类成员继承重写的实现
Sep 16 Python
python index() 与 rindex() 方法的使用示例详解
Dec 24 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与javascript实现变量交互的示例代码
2013/07/23 PHP
thinkphp连贯操作实例分析
2014/11/22 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
取得传值的函数
2006/10/27 Javascript
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
js post提交调用方法
2014/02/12 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
2017/08/29 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
python3实现逐字输出的方法
2019/01/23 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python异常处理和日志处理方式
2019/12/24 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
SQL语言面试题
2013/08/27 面试题
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
本科生详细的自我评价
2013/09/19 职场文书
设计毕业生简历中的自我评价
2013/10/01 职场文书
社团成立邀请函
2014/01/08 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
市场营销策划方案
2014/06/11 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
离婚协议书范本
2015/01/26 职场文书
电影雷锋观后感
2015/06/10 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript